home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-13
/
unity331.zip
/
UNITY.DOC
< prev
next >
Wrap
Text File
|
1991-09-26
|
167KB
|
5,408 lines
Unity Programmer's Editor Version 3.3.1
Copyright (c)1990,91
Ross Neilson Wentworth
All Rights Reserved
Chapter One
Registration and License Information
Registration Information
Unity is a copyrighted program protected by both U.S. and
international copyright law. If you obtained Unity from a
shareware disk vendor, an on-line computer service or bulletin
board, a friend or colleague, or another similar source, you have
an unregistered (trial) copy. You are authorized to use this
copy without charge for a limited period of time under the terms
of the Unity license agreement. After this time is up, you must
register and pay for Unity to continue using it.
This method of distribution is known as shareware. It allows you
to determine whether Unity meets your needs before you pay for
it.
For price and ordering information please refer to the file
ORDER.FRM.
Registering entitles you to:
o A disk with the latest version of Unity, registered to
you.
o One copy of the printed Unity manual (extra).
o Technical support via electronic mail or (limited)
telephone.
Network, site, corporate, and bundling licenses are also
available; contact Serendipity Software for more information.
Voice telephone support is limited because I must also work a
"regular" job. My hours vary wildly so I am often available in
the middle of the day.
License Agreement
(1) Copyright: The Unity program and all other programs and
documentation distributed or shipped with it are Copyright Ross
Neilson Wentworth and Serendipity Software, 1990, 1991, and are
protected by U.S. and international copyright law.
Chapter 1. Registration and License Information Page 3
(2) Definitions: Unity is distributed in two forms. A
"registered" copy of Unity is a copy distributed on diskette,
purchased from Serendipity or from a dealer, and which includes a
serial number and the legend "registered" on the diskette label.
A "shareware" copy of Unity is a copy distributed on diskette or
via an electronic bulletin board, on-line service, or other
electronic means, obtained from a shareware disk vendor, or
obtained from another individual, and which displays the legend
"shareware" program copyright notice, and in most cases on the
diskette label as well (if applicable).
(3) Shareware Copies: Shareware copies of Unity are distributed
to allow you to try the program before you pay for it. They are
Copyright 1990, 1991, Ross Neilson Wentworth and Serendipity
Software, and do not constitute "free" or "public domain"
software. You may use a shareware copy of Unity at no charge for
a trial period of up to 30 days. If you wish to continue using
Unity after that period, you must purchase a registered copy. If
you choose not to purchase a registered copy, you must stop using
Unity, though you may keep copies and pass them along to others.
(4) Registered Copies: Your registered copy of Unity may only
be used by one person at any time. It may be installed on
multiple computers so long as there is no possibility of it being
used at one location while it's being used at another.
(5) Use of Unity on Networks or Multiple Systems: You may
install your registered copy of Unity on a computer attached to a
network, provided there is no possibility that your copy will be
used by more users than it is licensed for. A "user" is defined
as one keyboard which is connected to a computer on which Unity
is installed, regardless of whether or not the user of the
keyboard is aware of the installation or use of Unity in the
system.
(6) Making Copies: You may copy any version of Unity for normal
backup purposes, and you may give copies of the shareware version
to other individuals, which they may also use and copy subject to
the terms of this agreement. If you copy the shareware version
of Unity for others, you must include all of the files
distributed with it, including this one. You may not give copies
of the registered version or brand program to any other person
for any purpose, and you may not make any copies of the printed
and bound Unity manual without explicit written permission from
Serendipity Software.
(7) Distribution Restrictions: You may NOT distribute Unity
other than through individual copies of the shareware version
passed to friends and associates for their individual use.
Specifically, you may not place Unity or any part of the Unity
package in any user group or commercial library, or distribute it
with any other product or as an incentive to purchase any other
product, without express written permission from Serendipity
Software, and you may not distribute for a fee, or in any way
Page 4 Chapter 1. Registration and License Information
sell copies of Unity or any part of the Unity package. If you
are a shareware disk vendor approved by the Association of
Shareware Professionals (ASP), you may place Unity in your
library without prior written permission, provided you notify
Serendipity Software within 15 days of doing so; and provided
your application has been fully approved in writing by the ASP,
and is not simply submitted or awaiting review.
(8) Use of Unity: Unity is a powerful program. While we have
attempted to build in reasonable safeguards, if you do not use
Unity properly you may destroy files or cause other damage to
your computer software and data. You assume full responsibility
for the selection and use of Unity to achieve your intended
results. As stated below, Serendipity Software limits its
warranty to replacement of a defective program diskette or
manual.
(9) LIMITED WARRANTY: Serendipity Software warrants to owners of
registered copies of Unity that the software will operate in
accordance with the description given in the documentation, and
that the diskette and manual will be free of physical defects
which interfere with normal use. For a period of 90 days from the
date of your purchase of Unity, Serendipity Software will, at its
sole option and subject to the restrictions above and below,
repair or replace any defective item(s), or refund the purchase
price of any diskette and/or manual and/or any other parts or
components of Unity found to be defective, if such defect is the
fault of Serendipity Software and not the result of misuse or
abuse. Such a refund, repair, or replacement shall be your sole
remedy for any defects, program error(s), or documentation
error(s). In no event shall Serendipity Software be responsible
for any other costs or damages whatsoever due to errors in usage
or your failure to read, understand, or follow instructions in
the documentation. SERENDIPITY SOFTWARE MAKES NO OTHER
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE
WARRANTIES OF MERCHANTABILITY AND OF FITNESS FOR A PARTICULAR
PURPOSE. Serendipity Software's warranty is expressly limited to
the cost of replacement of any defective diskette or other part.
(10) Satisfaction Guarantee: If you are dissatisfied with a
registered copy of Unity for any reason (whether or not you find
a software error or defect), you may return the entire package at
any time up to 90 days after purchase for a full refund of your
original registration fee.
Chapter 1. Registration and License Information Page 5
To register Unity print the file ORDER.FRM, fill it out and mail
it to the following address. Be sure to include the proper
amount as indicated on the order form.
Ross Neilson Wentworth
1422 Elkgrove Circle, Suite 3
Venice, CA 90291
(213)399-1244
That's a VOICE number listed above. I know that a few people out
there are not verifying phone numbers before calling with their
modem because I've been getting the occasional late night call
with nobody on the other end. For BBS numbers please see page
77.
Page 6 Chapter 1. Registration and License Information
Chapter Two
Overview
Unity Programmer's Editor is appropriately named. It easily
unites all of your programming tools into an intuitive
programmer's environment. Unity will automatically select the
correct tool for the job, such as an assembler for an ASM file, a
Pascal compiler for a PAS file, etc.
Major features of Unity:
o Shell to most any command-line compiler and programming
tools; preconfigured for Turbo Pascal, Turbo Assembler,
Turbo Debugger, Turbo Profiler, and many others.
o You don't compile blind! You can watch what your compiler
is doing, unlike Brief which redirects the output to a
file but doesn't echo it to the screen.
o Shell to DOS.
o Execute "work" program.
o Jump to line where errors occurred when compiling or
assembling.
o Display the compiler error message on the status line.
o Multiple file editing (Unity supports up to six windows).
o Edit the same file in multiple windows - changes are
communicated across windows.
o User extensible video adapter support.
o Use as little memory as possible when shelling. Expanded
memory, extended memory (with an XMS driver), and disk
swapping are supported.
If the computer is equipped with sufficient expanded memory or
XMS extended memory, and enough is available, less than 10k of
conventional memory will be consumed by the editor while running
the compiler, debugger, or shelling to DOS. In other words, the
amount of conventional memory wasted is so trivial that it can be
ignored. The minimum EMS required is 128k. The required amount
increases by the number and size of files being edited, 384k of
available EMS is recommended for an average size source file.
When any shell is made (compile, debug, DOS, etc.) Unity first
attempts to swap itself into XMS (if enabled). If that fails it
will try using EMS (if enabled). At as last resort swapping will
be done to disk. If that fails then the program will not be
swapped and less memory for the shell will be available or the
shell will not be possible.
Chapter 2. Registration and License Information Page 7
Page 8 Chapter 2. Overview
Chapter Three
Getting Started
You can start Unity in one of three ways:
1. You can enter UNITY at the DOS command line, and Unity
will create the file NONAME for you to edit. You can name
it later on.
2. You can specify one to three file names at one time. For
example, UNITY ONE.PAS TWO.PAS THREE.PAS, which tells
Unity to open three text windows, one for each file. If a
file doesn't exist, Unity will create it.
3. You can specify a file mask, e.g., UNITY *.PAS, which
tells Unity to display a list of file names matching the
mask '*.PAS'; you can then pick the file to edit from a
sorted directory listing.
You can optionally specify a macro to execute after opening each
file with the /# command line options, where # is a digit from
'1' to '9'. For example to execute macro number 9 you would
specify UNITY /9 MYFILE.PAS.
Automatic macro execution is useful when your default settings
are different from a desired setting under special circumstances.
Normally, programmers do not wish Word Wrap to be on, but if you
are working with a document you may wish to force it on. If
macro 9 includes the Word Wrap On command you could set up a
batch file (or alias if you use PCED or 4DOS) that automatically
includes the '/9' command line options.
A special command line option is supported to handle unusual
display behavior. If Unity is not correctly detecting the type
of video system you have then you need to use the /Vn command
line options, where n is one of the following:
0 - Monochrome/Hercules
1 - CGA
2 - MCGA
3 - EGA
4 - VGA
5 - PGC
Using this option will force Unity to use the video mode
specified, regardless of what it thinks is connected. CAUTION!
Specifying an incorrect value may cause Unity to become confused,
resulting in an illegible screen.
Chapter 3. Getting Started Page 9
Registered copies of Unity include several video device drivers.
To use one rename it to UNITY.VID. The following video device
drivers are current provided:
MEGA.VID Monochrome EGA
CEGA.VID Color EGA
MVGA.VID Monochrome VGA
CVGA.VID Color VGA
MTRIDENT.VID Monochrome Trident VGA
CTRIDENT.VID Color Trident VGA
The assembler source code is included so you can modify an
existing driver to add vendor specific video modes.
Page 10 Chapter 3. Getting Started
Chapter Four
The Editing Screen
The top line of the screen in Unity is always set aside as a
prompt line. Messages and instructions are usually displayed
here. When you press the first key of a command assigned to two
keystrokes, the keystroke is echoed at the left edge of the
prompt line.
The top line of any editing window in Unity is always a status
line, providing the following information:
>Z< Indicates that the window has been zoomed to fill
the screen.
FILENAME The name and extension of the file being edited.
Although Unity accepts complete path designations -
for example "C:\DOCS\SAMPLE.DOC", the drive and
path name will not be displayed on the status line.
xx% Indicates the position of the cursor relative to
the last character in the file.
Line n Shows the number of the line containing the cursor,
counting from the start of the file.
Col n Shows the number of the column containing the
cursor.
Insert Indicates that Insert mode is in effect. If Insert
is off, "Over" (for overwrite) will be displayed
instead.
Indent Indicates that Autoindent mode is in effect.
Wrap Indicates that wordwrap is in effect.
Justify Indicates that right-justification is in effect.
Mar Rel Indicates that the margin release command has been
used to temporarily override the left and right
margin while wordwrap is on. This is displayed in
the location usually reserved for "Wrap" and
"Justify".
>R< Indicates that macro recording is on.
>M< Indicates that a macro is running.
If the tab line has been turned on with the Toggle Tab Line
command, the second line in the text window will display the
locations of the current stops, as well as the left and right
margins.
Chapter 4. Getting Started Page 11
Page 12 Chapter 4. The Editing Screen
Chapter Five
Quick Reference Guide
╔══════════════════════════╤══════════════╤══════════════╗
║Keyboard Quick Reference │Primary │Alternate ║
╟──────────────────────────┼──────────────┼──────────────╢
║Project │<F9> │ ║
║Execute │<AltE> │ ║
║Build all │ │ ║
║Symbols │ │ ║
║Tool 1 │<AltC> │ ║
║Tool 2 │<AltA> │ ║
║Tool 3 │<AltD> │ ║
║Tool 4 │<AltP> │ ║
║Tool 5 │<AltT> │ ║
║Tool 6 │<AltG> │ ║
║Tool 7 │ │ ║
║Tool 8 │ │ ║
║Tool 9 │ │ ║
║Tool 10 │ │ ║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Set primary file name │<AltF> │ ║
║Make current file primary │<AltH> │ ║
║Set autosave timer │ │ ║
║Next error file │<CtrlF5> │ ║
║Next error │<F5> │ ║
║Previous error │<F4> │ ║
║Tool 1 options │ │ ║
║Tool 2 options │ │ ║
║Tool 3 options │ │ ║
║Tool 4 options │ │ ║
║Tool 5 options │ │ ║
║Tool 6 options │ │ ║
║Tool 7 options │ │ ║
║Tool 8 options │ │ ║
║Tool 9 options │ │ ║
║Tool 10 options │ │ ║
╙──────────────────────────┴──────────────┴──────────────╜
Chapter 5. Quick Reference Guide Page 13
╓──────────────────────────┬──────────────┬──────────────╖
║Edit another file │<F3> │ ║
║Abandon all files │<AltQ> │ ║
║Read file into window │<CtrlK><CtrlR>│ ║
║Write block to file │<CtrlK><CtrlW>│ ║
║Save and continue edit │<CtrlK><CtrlS>│<F2> ║
║Save file and close window│<CtrlK><CtrlX>│ ║
║Close all but current file│<CtrlK><CtrlA>│ ║
║Save/switch files │<CtrlK><CtrlD>│ ║
║Save and exit to DOS │<AltX> │ ║
║Write to named file │<CtrlK><CtrlN>│ ║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Character left │<Lft> │<CtrlS> ║
║Character right │<Rgt> │<CtrlD> ║
║Word left │<CtrlLft> │<CtrlA> ║
║Word right │<CtrlRgt> │<CtrlF> ║
║Line up │<Up> │<CtrlE> ║
║Line down │<Dn> │<CtrlX> ║
║Scroll up │<CtrlW> │ ║
║Scroll down │<CtrlZ> │ ║
║Page down │<PgDn> │<CtrlC> ║
║Page up │<PgUp> │<CtrlR> ║
║Top of window │<CtrlPgUp> │<CtrlQ><CtrlR>║
║Bottom of window │<CtrlPgDn> │<CtrlQ><CtrlC>║
║Cursor to left side │<Home> │<CtrlQ><CtrlS>║
║Cursor to right side │<End> │<CtrlQ><CtrlD>║
║Top of screen │<CtrlHome> │<CtrlQ><CtrlE>║
║Bottom of screen │<CtrlEnd> │<CtrlQ><CtrlX>║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Go to line │<CtrlJ><CtrlL>│ ║
║Go to column │<CtrlJ><CtrlC>│ ║
║Go to window │<CtrlJ><CtrlW>│ ║
║Top of block │<CtrlQ><CtrlB>│ ║
║Bottom of block │<CtrlQ><CtrlK>│ ║
║Jump marker 0..9 │<CtrlQ>0 .. <CtrlQ>9 ║
║Set marker 0..9 │<CtrlK>0 .. <CtrlK>9 ║
║Previous cursor position │<CtrlQ><CtrlP>│ ║
║Up to equal indent │<CtrlJ><CtrlB>│ ║
║Down to equal indent │<CtrlJ><CtrlE>│ ║
║Next sentence │<CtrlQ><CtrlZ>│ ║
║Previous sentence │<CtrlQ><CtrlW>│ ║
║Set a marker via menu │ │ ║
║Jump to marker by menu │ │ ║
╙──────────────────────────┴──────────────┴──────────────╜
Page 14 Chapter 5. Quick Reference Guide
╓──────────────────────────┬──────────────┬──────────────╖
║New line │<CtrlM> │ ║
║Insert line │<CtrlN> │ ║
║Insert control char │<CtrlP> │ ║
║Delete current character │<Del> │<CtrlG> ║
║Delete left character │<CtrlH> │ ║
║Delete right word │<CtrlT> │ ║
║Delete left word │<CtrlBks> │ ║
║Delete line right │<CtrlQ><CtrlY>│ ║
║Delete line │<CtrlY> │ ║
║Delete Line (no undo) │ │ ║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Find pattern │<CtrlQ><CtrlF>│ ║
║Find and replace │<CtrlQ><CtrlA>│ ║
║Search and apply macro │<CtrlQ><CtrlM>│ ║
║Find next │<CtrlL> │ ║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Add window │<CtrlO><CtrlA>│<ShiftF3> ║
║Close window │<CtrlK><CtrlQ>│ ║
║Next window │<CtrlO><CtrlN>│<F6> ║
║Previous window │<CtrlO><CtrlP>│<ShiftF6> ║
║Resize current window │<CtrlO><CtrlS>│ ║
║Toggle zoom mode │<AltZ> │ ║
║Zoom the current window │ │ ║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Begin block │<CtrlK><CtrlB>│<F7> ║
║End block │<CtrlK><CtrlK>│<F8> ║
║Copy block │<CtrlK><CtrlC>│ ║
║Move block │<CtrlK><CtrlV>│ ║
║Delete block │<CtrlK><CtrlY>│ ║
║Toggle block display │<CtrlK><CtrlH>│ ║
║Mark current line │<CtrlK><CtrlL>│ ║
║Mark current word │<CtrlK><CtrlT>│ ║
║Shift block left │<ShiftF7> │<AltLft> ║
║Shift block right │<ShiftF8> │<AltRgt> ║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Toggle macro record │<CtrlJ><CtrlT>│ ║
║Playback scrap │<CtrlJ><CtrlI>│ ║
║Playback scrap 1..9 times │<CtrlJ>1 .. <CtrlJ>9 ║
║Playback macro 1..9 │<Alt1> .. <Alt9> ║
║Playback macro by menu │ │ ║
║Edit macro │ │ ║
║Load macros from disk │ │ ║
║Write macros to disk │ │ ║
╙──────────────────────────┴──────────────┴──────────────╜
Chapter 5. Quick Reference Guide Page 15
╓──────────────────────────┬──────────────┬──────────────╖
║Repeat macro │<CtrlJ><CtrlM>│ ║
║Abort macro end of block │<CtrlJ><CtrlN>│ ║
║Abort macro end of file │<CtrlJ><CtrlQ>│ ║
║Abort macro blank line │<CtrlJ><CtrlO>│ ║
║Force screen update │<CtrlJ><CtrlU>│ ║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Toggle insert mode │<CtrlV> │<Ins> ║
║Force insert mode │ │ ║
║Force overtype mode │ │ ║
║Toggle autoindent mode │<CtrlQ><CtrlI>│ ║
║Force autoindent mode │ │ ║
║Toggle word wrap │<CtrlO><CtrlW>│ ║
║Force wordwrap on │<CtrlQ><CtrlO>│ ║
║Toggle right justify │<CtrlO><CtrlJ>│ ║
║Toggle compress at wrap │ │ ║
║Set left margin │<CtrlO><CtrlL>│ ║
║Set right margin │<CtrlO><CtrlR>│ ║
║Set temp margin │<CtrlO><CtrlG>│ ║
║Temp margin to cursor │<CtrlO><CtrlH>│ ║
║Margin release │<CtrlO><CtrlX>│ ║
║Center line │<CtrlO><CtrlC>│ ║
║Toggle case │<CtrlO><CtrlO>│ ║
║Lower case │<CtrlO><CtrlV>│ ║
║Upper case │<CtrlO><CtrlU>│ ║
║Reformat paragraph │<CtrlB> │ ║
║Reformat block │<CtrlK><CtrlF>│ ║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Toggle tab line │<CtrlO><CtrlT>│ ║
║Toggle marker display │<CtrlK><CtrlM>│ ║
║Toggle key help │<CtrlJ><CtrlK>│ ║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Invoke DOS shell │<CtrlF9> │ ║
║Log drive/path │<CtrlJ><CtrlD>│ ║
║Show system info │<CtrlJ><CtrlV>│ ║
║Show available memory │<CtrlJ><CtrlR>│ ║
║File directory │ │ ║
╙──────────────────────────┴──────────────┴──────────────╜
Page 16 Chapter 5. Quick Reference Guide
╓──────────────────────────┬──────────────┬──────────────╖
║Set undo limit │ │ ║
║Set error buffer size │ │ ║
║Set support path │ │ ║
║Set default extension │ │ ║
║Set colors │ │ ║
║Toggle snow check │ │ ║
║Toggle block cursor │ │ ║
║Select video mode │ │ ║
║Select DESQview video mode│ │ ║
║Toggle enhanced keyboard │ │ ║
║Toggle dual display │ │ ║
║Toggle tab expansion │ │ ║
║Toggle tab writing │ │ ║
║Toggle hi-bit strip │ │ ║
║Toggle initial zoom │ │ ║
║Toggle EMS usage │ │ ║
║Toggle XMS usage │ │ ║
║Set swap drive │ │ ║
║Save defaults │ │ ║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Tab │<CtrlI> │ ║
║Backward tab │<ShiftTab> │ ║
║Toggle fixed tabs │<CtrlO><CtrlF>│ ║
║Force fixed tabs │<CtrlJ><CtrlG>│ ║
║Set tab size │ │ ║
╙──────────────────────────┴──────────────┴──────────────╜
╓──────────────────────────┬──────────────┬──────────────╖
║Help menu │<F1> │ ║
║Show help summary │<CtrlJ><CtrlH>│ ║
║Status help │ │ ║
║Cursor help │ │ ║
║Quick movement help │ │ ║
║Delete help │ │ ║
║Find/Replace help │ │ ║
║File help │ │ ║
║Window help │ │ ║
║Block help │ │ ║
║Text help │ │ ║
║Tab help │ │ ║
║Utility help │ │ ║
║Setting help │ │ ║
║Program help │ │ ║
║Macro help │ │ ║
║Function keys │ │ ║
╙──────────────────────────┴──────────────┴──────────────╜
Chapter 5. Quick Reference Guide Page 17
╓──────────────────────────┬──────────────┬──────────────╖
║Activate menus │<F10> │ ║
║Abort command (1 char) │<CtrlU> │ ║
║Undo last deletion │<CtrlQ><CtrlU>│ ║
║Restore line │<CtrlQ><CtrlL>│ ║
║Insert undo buffer │<CtrlQ><CtrlV>│ ║
║Flush undo buffer │<CtrlQ><CtrlJ>│ ║
╚══════════════════════════╧══════════════╧══════════════╝
Commands that do not have a primary or secondary key sequence can
only be accessed through the menu. There are a few without key
sequences which do not have a corresponding menu option and must
be installed to a key sequence before they can be used.
The above quick reference guide can be created using the
installation program (UINST.EXE). After making any keyboard
changes you need you will be asked if you wish a quick-reference
guide. Answering Yes will result in a new quick reference with
any changes you've made being created in the current directory.
Page 18 Chapter 5. Quick Reference Guide
Chapter Six
Basic Movement Commands
Character Left <Lft> or <CtrlS>
Moves the cursor one character to the left. This command does
not work across line breaks; when the cursor reaches column 1,
it stops.
Character Right <Rgt> or <CtrlD>
Moves the cursor one character to the right. This command does
not work across line breaks; when the cursor reaches the
right-hand edge of the text window, the text starts scrolling
horizontally until it reaches the extreme right edge of the
line (column 999), where it stops.
Word Left <CtrlLft> or <CtrlA>
Moves the cursor to the beginning of the word to the left.
This command works across line breaks.
Word Right <CtrlRgt> or <CtrlF>
Moves the cursor to the beginning of the word to the right.
This command works across line breaks.
Line Up <Up> or <CtrlE>
Moves the cursor to the line above. If the cursor is on the
top line of the window, the window scrolls down one line (if
there's more text to scroll).
Line Down <Dn> or <CtrlX>
Moves the cursor to the line below. If the cursor is on the
last line of the window, the window scrolls up one line (if
there's more text to scroll).
Scroll Up <CtrlW>
Scrolls up toward the beginning of the file, one line at a
time. The cursor remains on its line until it reaches the
bottom of the window.
Scroll Down <CtrlZ>
Scrolls down toward the end of the file. The cursor remains on
its line until it reaches the top of the window.
Page Down <PgDn> or <CtrlC>
Moves the cursor down one page with an overlap of one line.
Page Up <PgUp> or <CtrlR>
Moves the cursor on page up with an overlap of one line.
Chapter 6. Quick Reference Guide Page 19
Beginning of File <CtrlPgUp> or <CtrlQ><CtrlR>
Moves the cursor to the first character in the file.
End of File <CtrlPgDn> or <CtrlQ><CtrlC>
Move the cursor to the last character in the file.
Beginning of Line <Home> or <CtrlQ><CtrlS>
Moves the cursor to column 1 of the current line.
End of Line <End> or <CtrlQ><CtrlD>
Moves the cursor to the end of the current line (the position
following the last nonblank character on the line). Trailing
blanks are always removed from all line to preserve space.
Top of Screen <CtrlHome> or <CtrlQ><CtrlE>
Moves the cursor to the first line displayed in the active
window. The cursor remains in the same column.
Bottom of Screen <CtrlEnd> or <CtrlQ><CtrlX>
Moves the cursor to the last line displayed in the active
window. The cursor remains in the same column.
Page 20 Chapter 6. Basic Movement Commands
Chapter Seven
Markers And Jumping
Go to Line <CtrlJ><CtrlL>
Prompts for a line number and moves the cursor to the specified
line. Any positive integer in the range 1 to 32,767 is valid.
If the value is preceded by a plus (+) or minus (-) sign, the
target line number will be calculated relative to the current
line. Line numbers are counted from the beginning of the file.
Go to Column <CtrlJ><CtrlC>
Prompts for a column number and moves the cursor to the
specified column in the current line. Any positive integer in
the range 1 to 999 is valid. If the value is preceded by a
plus (+) or minus (-) sign, the target column number will be
calculated relative to the current column.
Go to Window <CtrlJ><CtrlW>
If more than one window is open, a list of the open windows is
displayed in a pop-up menu; after the selection is made, the
cursor is moved to the indicated window. If only one window is
open, an error message is displayed.
Top of Block <CtrlQ><CtrlB>
Moves the cursor to the position of the block-begin marker set
with <CtrlK><CtrlB>. The command works even if the block is
hidden or the block-end marker is not set.
Bottom of Block <CtrlQ><CtrlK>
Moves the cursor to the position of the block-end marker set
with <CtrlK><CtrlK>. The command works even if the block is
hidden or the block-begin marker is not set.
Jump to Marker 0..9 <CtrlQ>0 .. <CtrlQ>9
Moves the cursor to one of the ten text markers with the Set
marker command. <CtrlQ>0 jumps to marker 0, <CtrlQ>1 jumps to
marker 1, and so on. If the specified marker has not been set,
the cursor is not moved.
Set Marker 0..9 <CtrlK>0 .. <CtrlK>9
Sets one of the ten text markers at the current position of the
cursor. <CtrlK>0 sets marker 0, <CtrlK>1 sets marker 1, and so
on.
Previous Cursor Position <CtrlQ><CtrlP>
Moves to the last cursor position. This command is
particularly useful to move back to the previous position after
a Find or Find-and-Replace operation.
Chapter 7. Basic Movement Commands Page 21
Up To Equal Indent <CtrlJ><CtrlB>
Moves the cursor to the beginning of the previous line with the
same indentation level as the current line. For example, if
the first nonblank character in the current line is at column
20, the cursor is moved up to the next line that also begins at
column 20.
Down To Equal Indent <CtrlJ><CtrlE>
Moves the cursor to the beginning of the next line with the
same indentation level as the current line.
Next Sentence <CtrlQ><CtrlZ>
Moves the cursor to the beginning of the next sentence. A
sentence is defined as a sequence of characters delimited by a
period, semicolon, question mark, exclamation mark, or blank
line.
Previous Sentence <CtrlQ><CrtlW>
If the cursor is in the middle of a sentence, the cursor is
moved to the beginning of the current sentence. If the cursor
is at the beginning of a sentence or between sentences (on a
blank line, for example) the cursor is moved to the beginning
of the previous sentence.
Set Marker Via Menu
Performs same function as the Set Marker command, but you are
prompted for a marker number.
Jump To Marker By Menu
Performs the same function as the Jump to Marker command, but
you are prompted for a marker number. A pop-up window is
displayed, showing the marker number, the file it is in, and
the number of the line containing the marker. If a marker has
not been set, "Not Set" is displayed instead. You may select a
marker either by pressing its number or by moving the selection
bar to it and pressing <Enter>.
Page 22 Chapter 7. Markers And Jumping
Chapter Eight
Insert And Delete
New Line <Enter> or <CtrlM>
In Insert mode, this command inserts a line break at the
cursor's position. If AutoIndent mode is in effect, the cursor
moves to the next line and to the same column as the first
nonblank character in the previous line; otherwise, it moves to
column 1 of the new line.
In Overwrite mode, this command moves the cursor to column 1 of
the next line without inserting a new line, whether Autoindent
mode is in effect or not. A new line will be inserted if
you're in Overwrite mode and the cursor is on the last line of
the file.
Insert Line <CtrlN>
Inserts a line break at the cursor's position. The cursor does
not move.
Insert Control Character <CtrlP>
Allows control characters to be entered into the text. For
example, pressing <CtrlP> and then <CtrlB> would insert <CtrlB>
into the text. Control characters are always displayed as
highlighted capital letters.
Delete Current Character <Del> or <CtrlG>
Deletes the character under the cursor and moves any characters
to the right of the cursor one position to the left. This
command does not work across line breaks.
Delete Character Left <Backspace> or <CtrlH>
Moves the cursor one character to the left and deletes the
character positioned there. Any characters to the right of the
cursor are moved one position to the left. If the cursor is at
column 1 at the time the command is given, the invisible end-
of-line marker for the previous line is deleted instead and the
two lines joined.
Delete Word Right <CtrlT>
Deletes the word to the right of the cursor. This command
works across line breaks and thus may be used to remove line
breaks.
Delete Word Left <CtrlBksp>
Deletes the word to the left of the cursor. This command works
across line breaks and thus may be used to remove line breaks.
Chapter 8. Markers And Jumping Page 23
Delete to End of Line <CtrlQ><CtrlY>
Deletes all the text from the position of the cursor to the end
of the line.
Delete Line <CtrlY>
Deletes the line containing the cursor and moves any lines
below up one line. The cursor moves to column 1 of the next
line.
Delete Line (no undo) <CtrlQ><CtrlT>
Delete the line containing the cursor and moves any lines below
up one line. The cursor moves to column one. The deleted line
is NOT placed in the undo buffer.
Page 24 Chapter 8. Insert And Delete
Chapter Nine
Find And Replace
Find <CtrlQ><CtrlF>
Lets you search for a string of up to 67 characters. When you
enter this command, you will be asked for a search string. The
last search string entered (if any) will be displayed. You can
select it again by pressing <Enter>, edit it, or enter a new
search string. <Esc> or <CtrlU> will cancel a search command,
and <CtrlP> can be used to enter control characters. For
example, to find a period at the end of a line you would search
for ".<CtrlM>", where <CtrlM> was entered by pressing <CtrlP>
and <CtrlM>.
After the search string is entered, you must specify your
search options. The options you used last are displayed. You
can enter new options (canceling the old ones), edit the
current options, or select them again by pressing <Enter>. The
following options are available:
B Searches backwards from the current cursor position
toward the beginning of the file.
G Searches globally. The entire file is scanned for the
search string, regardless of the current position of
the cursor. The search starts at the beginning of the
file if searching forwards; at the end if searching
backwards.
L Limits searches to the currently marked block.
n Finds the nth occurrence of the string (overridden by
the L option).
U Ignores case; treats all alphabetic characters as if
they were upper-case.
W Searches for whole words only; skips patterns embedded
in other words.
If the text contains a target matching the search string, the
target is highlighted and the cursor is positioned just beyond
it.
Find-and-Replace <CtrlQ><CtrlA>
This operation works the same as the Find command except that
you can replace the found string with any other string of up to
67 characters. After the entering the search string, you are
asked to enter the replacement string. The last replacement
string entered, if any, will be displayed; you may accept it,
edit it, or enter a new string.
Chapter 9. Insert And Delete Page 25
Finally, you are prompted for options. The options you used
last are displayed first. You may enter new options (canceling
the old ones), edit the current options, or select them by
pressing <Enter>. The options available are the same as those
for the Find command except the exception of the following:
N Replaces without asking; does not prompt for
confirmation at each occurrence of the search string.
If the text contains a target matching the search string, the
target is highlighted and the cursor is positioned just beyond
it. You are then asked if you wish to replace it. Press Y to
replace it, N to ignore it, or A to replace it and all
subsequent matches without asking. You can abort the operation
by pressing Q. If you select N (no prompt) option, this
question will not be asked.
Search And Apply Macro <CtrlQ><CtrlM>
Searches for any string up to 67 characters and then applies a
macro to it; that is, it moves the cursor to your target, and
executes the commands stored in the macro. You can enter
search strings in the same way as the Find command. After the
search string is entered, a menu is displayed containing all
the macros you've defined. Move the selection bar with the
<Up> and <Down> arrow keys and select your macro by pressing
<Enter>. You can abort the operation by pressing <Esc>.
Finally, you are prompted for options.
The options you used last are displayed at first. You may
enter new options (canceling the old ones), edit the current
options, or select them by pressing <Enter>. The options
available for the Find-and-Replace command are available here
as well.
The screen is not updated while a Search-and-Apply Macro
operation is being performed (see Update Screen). You can use
the Abort command (<CtrlU>) to stop the operation.
Find Next <CtrlL>
Repeats the last search operation. If the last search command
called for a Find operation, the same search string and options
will be repeated; for a Find-and-Replace operation, the
replacement string will be reused as well.
Page 26 Chapter 9. Find And Replace
Chapter Ten
File Commands
Edit Another File <F3>
If the file in the current window has not been modified, the
window is cleared and you are prompted for a new file to edit
in the same window. If the files does need saving, you will be
asked if the file should be abandoned.
Abandon All Files AltQ
Closes all files and exits to DOS. You will be asked if you
want to save any files that have been modified. You can abort
this command by pressing <CtrlU> (Abort).
Read File Into Window <CtrlK><CtrlR>
Read a file into the text at the cursor's current position
exactly as if it were copied from another part of the text.
The file read in is marked as a block.
Write Block to File <CtrlK><CtrlW>
Writes the currently marked block to a file. You are first
prompted for a file name. If the file already exists, you are
asked if you want to overwrite it. If the file does not exist,
a new file is created. The block is left unchanged, and the
block markers remain in place. If no block is marked, this
command is ignored.
Save and Continue Edit <CtrlK><CtrlS> or <F2>
Simply saves the file in the active window.
Save File and Close Window <CtrlK><CtrlX>
Saves the file in the active window. If the active window is
the only window open, this command will quit to the menu,
otherwise, the window is closed and you may continue editing in
another window.
Close All But Current Window <CtrlK><CtrlA>
Closes all but the current window. Changes, if any, are saved.
If any files are unnamed (NONAME) you will be prompted for the
file name.
Save/switch files <CtrlK><CtrlD>
Save the file in the current window. The window then cleared
and you are prompted for a new file to edit in the same window.
Save All and Exit to DOS <AltX>
Saves all files that have been modified and exits to DOS.
Chapter 10. Find And Replace Page 27
Write to Named File <CtrlK><CtrlN>
Prompts you for a file name, then saves the file in the current
window in the specified file. This becomes the new name for
the file in the window (and in any other windows that display
the file). This command is particularly useful when editing
NONAME files.
Page 28 Chapter 10. File Commands
Chapter Eleven
Window Commands
Add Window <CtrlO><CtrlA> or <ShiftF3>
Opens another window. You will be prompted for a file to edit;
if you do not specify one, a NONAME file is created. You can
later save it as a named file with the Save-to-File command.
If too many windows are opened (limit of six) or if the active
window is too small to be divided in half (fewer than seven
screen lines including the status line), you will get an error
message.
Close Window <CtrlK><CtrlQ>
If the file in the active window has not been modified, this
command closes the window. Otherwise, you are asked to verify
that the file would be abandoned before the window is closed.
If the active window is the only window open you are placed in
the menu system.
Next Window <CtrlO><CtrlN> or <F6>
Makes the next window the active window.
Previous Window <CtrlO><CtrlP> or <ShiftF6>
Makes the previous window the active window.
Resize Active Window <CtrlO><CtrlS>
Changes the size of the active window. You can adjust the size
by pressing the <Up> and <Dn> arrow keys. When you are
finished, pressing <Enter> or <Esc> returns you to the editor.
Toggle Zoom Mode <AltZ>
If the current screen is in split window mode the current file
is zoomed to fill the screen. If the screen is already zoomed
it is switched back to split window mode.
Zoom The Current Window
If the screen is in split window mode the current file is
zoomed to file the screen. If the screen is already in zoom
mode this command does nothing. This command is intended for
use in macros when you wish to place the screen in a known
state. If you need it to be in split screen mode you should
first force zoom mode then toggle the zoom mode.
Chapter 11. File Commands Page 29
Page 30 Chapter 11. Window Commands
Chapter Twelve
Block Commands
Begin Block <F7> or <CtrlK><CtrlB>
Marks the beginning of a block. The marker itself is not
visible on the screen, and the block becomes invisible only
when the end-block marker is set. You can also use the
begin-block as an extra text marker and jump directly to it
with <CtrlQ>CtrlB>.
End Block <F8> or <CtrlK><CtrlK>
Marks the end of a block. Like the begin-block marker, the
end-block marker is invisible, and the block itself will not be
displayed unless both markers are set. You can also use the
end-block marker as an extra text marker and jump directly to
it with <CtrlQ><CtrlK>.
Copy Block <CtrlK><CtrlC>
Creates a copy of a marked and displayed block at the current
cursor position. The original block is left unchanged, and the
markers are placed around the new copy of the block.
Move Block <CtrlK><CtrlV>
Moves a marked and displayed block from its current position to
the cursor's position. The markers remain around the block at
its new position.
Delete Block <CtrlK><CtrlY>
Deletes a marked and displayed block. Although the Undo last
deletion can usually restore portions of an accidentally
deleted block, there is no command to restore a deleted block
in its entirety, so use this command with care.
Toggle Block Display <CtrlK><CtrlH>
Toggles off and on the visual marking of a block.
Mark Current Line <CtrlK><CtrlL>
Marks the current line as a block, combining the functions of
the begin-block and end-block commands.
Mark Current Word <CtrlK><CtrlT>
Marks a single word as a block, combining the functions of the
begin-block and end-block commands. If the cursor is
positioned within a word, that word will be marked. If it is
not within a word, then the word to the right of the cursor
will be marked, and if there is no word to the right of the
cursor, then the word to the left will be marked.
Chapter 12. Block Commands Page 31
Shift Block Left <ShiftF7> or <AltLft>
Shifts the marked block one character to the left. If a block
is not marked (or if the block is hidden) only the current line
will be shifted. A single space at the beginning of each line
in the block is deleted. If the first character in a line is
not a space the line is left unaltered.
Shift Block Right <ShiftF8> or <AltRgt>
Shifts the marked block one character to the right. If a block
is not marked (or if the block is hidden) only the current line
will be shifted. A single space is inserted at the beginning
of each line in the block.
Page 32 Chapter 12. Block Commands
Chapter Thirteen
Macro Commands
Toggle Macro Record <CtrlJ><CtrlT>
Turns macro recording on or off. When macro recording is on,
all subsequent keystrokes (up to the 255 keystroke limit) are
saved until macro recording is turned off again. Once the
macro is recorded, you are asked to select a macro slot to
store it in.
Playback Scrap <CtrlJ><CtrlI>
Plays back the scrap macro (macro 0) a prompted number of
times. The "scrap macro" is always the same as the last macro
that was recorded, even if it was saved as a normal macro
(1-9).
Playback scrap 1..9 times <CtrlJ>1 ... <CtrlJ>9
Plays back the scrap macro 1 to 9 times. <CtrlJ> 1 plays it
back once, <CtrlJ> 2 twice, and so on.
Playback Macro 1..9 <Alt1> ... <Alt9>
Plays back the specified macro one time. <Alt1> plays back
macro 1, <Alt2> macro 2, and so on.
Playback
Prompts you for a choice, then plays back the macro you
selected.
Edit Macro
Allows you to edit previously saved macros. Unity has a
special editing module designed specifically for working with
macros. Special keys (function keys, cursor keys, and so on)
are represented by abbreviated forms of their names - for
example, <Esc>, <CtrlN>, <Enter> - so that you won't have to
run to your reference books to see what characters represent
what keystrokes, and these symbols are highlighted. Regular
keystrokes are shown as normal characters without highlighting.
When you enter this command, you are asked to select a macro to
edit (and optionally a name for the macro). Then you enter the
macro editor itself. Several keys serve special purposes here:
The cursor keys behave as usual, moving the cursor so you can
select a particular keystroke to change; Backspace deletes a
single keystroke, just as it does in the regular editor;
<CtrlBksp> deletes an entire macro; <Esc> restores the macro to
its previous state; and the <Enter> key takes you out of the
macro editor. The <ScrollLock> key acts as a toggle, turning
literal interpretations of keystrokes on and off. If you
wanted to assign a macro with the <Enter> key or the
Chapter 13. Block Commands Page 33
<Backspace> key, which normally serve a special function, you
would first press <ScrollLock>. Pressing it again would
restore all special keys to their previous state.
Load Macros
Allows you to load a file of previously saved macros. If the
file you specify does not exist, an error message is displayed.
Store Macros
Save the current macros to the file you specify.
Page 34 Chapter 13. Macro Commands
Chapter Fourteen
Macro Looping Commands
Repeat Macro <CtrlJ><CtrlM>
Repeats the currently running macro. Care must be taken to
insure that one of the macro abort commands is used to avoid an
infinitely repeating loop. If this should occur, pressing the
abort key (normally <CtrlU>) will halt the macro.
Each time the Repeat Macro command is executed an internal
counter is incremented and the new counter value is displayed
in the upper right corner of the the screen.
While a macro is running the screen is not updated to improve
performance. If you wish a to have visual feedback of your
repeating macro you should insert the Update Screen command
somewhere in your macro sequence.
Abort Macro if Out of Block <CtrlJ><CtrlN>
If the current line is not within the specified block the macro
is aborted.
A macro to shift all lines in the specified block two
characters to the right is:
<CtrlJ>n ; abort macro if out of block
" " ; two spaces (the " are not entered)
<Home> ; move to beginning of line
<CtrlX> ; move down one line
<CtrlJ>m ; repeat the macro
Abort Macro If End Of File <CtrlJ><CtrlQ>
If the cursor is on the FIRST or LAST line of the file the
macro is aborted.
Abort Macro if Blank Line <CtrlJ><CtrlO>
If the current line is blank the macro is aborted.
Update Screen <CtrlJ><CtrlU>
Forces a complete update of the screen. This command is
intended for use inside a macro. Normally, while a macro is
executing the screen is not updated until completion so as to
improve performance. If you wish visual feedback while running
a long, repeating macro, place this command somewhere in your
macro. Using this command will greatly slow execution of a
macro, however.
Chapter 14. Macro Commands Page 35
Page 36 Chapter 14. Macro Looping Commands
Chapter Fifteen
Format Commands
Toggle Insert Mode <Ins> or <CtrlV>
Selects the Insert or Overwrite mode. In insert mode, text to
the right of the cursor is moved to the right as new text is
entered. In Overwrite mode, any text beneath the cursor is
overwritten when new text is entered. Notice that the cursor's
size is an indication of the mode you are in: A thin cursor
indicates Overwrite, while a slightly fatter cursor indicates
Insert.
Force Insert Mode
This command forces insert mode. It is primarily intended to
be used in macros when you need to force insert mode on.
Force Overtype Mode
This command forces overtype mode. It is primarily intended to
be used in macros.
Toggle Autoindent <CtrlQ><CtrlI>
When Autoindent mode is in effect, the New line command
(<Enter> or <CtrlM>) will move the cursor to the next row and
to the same column as the first nonblank character on the
previous line.
Force Autoindent Mode
Forces autoindent mode on. This command is primarily intended
to be used in macros.
Toggle Word Wrap CtrlO W
Turns on or off the word wrap mode. When word wrap is on a new
line will automatically be started when the right margin is
reached. When word wrap is off a new line must be specifically
entered.
Force Word Wrap On
Force word wrap mode on. This command is primarily intended to
be used in macros.
Toggle Right Justify <CtrlO><CtrlJ>
If wordwrap is on, all wordwrap and reformatting operations
fill out each line such that the last character in each line
touches the right margin. Note: Turning right-justification
on automatically turns on wordwrap.
Chapter 15. Format Commands Page 37
Toggle Compress At Wrap
When Unity wraps or reformats text that falls beyond the right
margin, its usual first step is to compress excess blanks from
the current line. This step is needed so that previously
right-justified text can be reformatted with the padding spaces
automatically removed. In some cases, however, the compression
will remove desired spaces, such as those used for aligning
columns of figures in a table. The compress wrap toggle is
designed to control this behavior. When Compress Wrap is off,
Unity will not remove spaces in a line when it starts to wrap
it.
Set Left Margin <CtrlO><CtrlL>
Sets the left margin for text displayed on the screen.
Set Right Margin <CtrlO><CtrlR>
Sets the right margin for text displayed on the screen.
Set Temporary Margin <CtrlO><CtrlG>
Temporarily moves the left margin one tab stop to the right.
The temporary margin remains in force until you leave the
current paragraph. This command works only if wordwrap and
fixed tabs are on; if they are off, an error message is
displayed. When the tab line is on, the temporary margin is
indicated by an arrow pointing to the right.
Set Temporary Margin To Cursor <F4> or <CtrlO><CtrlH>
Same as the Set Temporary Margin command except that the left
margin is set to the current position of the cursor instead of
the next tab stop.
Margin Release <CtrlO><CtrlX>
Allows you to type beyond the left or right margin when
wordwrap is on. The margin release remains in effect until the
cursor is moved to a new line.
Center Line <CtrlO><CtrlC>
Centers the current line within the left and right margins.
This command works whether wordwrap is on or off.
Toggle Case <CtrlO><CtrlO>
Toggles the case case of the character above the cursor
(upper-case letters are changed to their lower-case
equivalents, and vice versa). If the cursor is within a marked
(and displayed) block, the command affects all characters in
the block.
Lower Case <CtrlO><CtrlV>
Same as Toggle case command except that it changes the
character(s) to its lower-case equivalent.
Upper Case <CtrlO><CtrlU>
Same as toggle case command except that it changes the
character(s) to its upper-case equivalent.
Page 38 Chapter 15. Format Commands
Reformat Paragraph <CtrlB>
Rearranges words from the current line to the end of the
paragraph so that the lines are as full as possible, given the
constraints imposed by the left and right margins. if right-
justification is on, the lines will also be evenly padded with
spaces until the last character on the line touches the right
margin. The end of a paragraph is signaled by a blank line.
Reformat Block <CtrlK><CtrlF>
Reformats all paragraphs within the currently marked block.
Chapter 15. Format Commands Page 39
Page 40 Chapter 15. Format Commands
Chapter Sixteen
Miscellaneous Toggles
Toggle Tab Line <CtrlO><CtrlT>
Turns on and off displaying tab line for the current window.
The tab line shows you the position of all tab stops, as well
as the current left and right margins. Note: Turning on the
tab line automatically turns on fixed tabs.
Toggle Marker Display <CtrlK><CtrlM>
Hides or makes all text markers visible. Setting a new text
marker automatically turns on Marker display if it was
previously turned off.
Toggle Key Help <CtrlJ><CtrlK>
By default, symbols for the primary command associated with
particular menu choices are displayed on the prompt line as you
scroll through the lists of choices. This feature is intended
to help you learn the shortcut commands for menu items.
Chapter 16. Miscellaneous Toggles Page 41
Page 42 Chapter 16. Miscellaneous Toggles
Chapter Seventeen
System Commands
Invoke DOS Shell <CtrlF9>
Gives you access to DOS services or to other program from
inside Unity. At the prompt box, enter a DOS command just as
you would at the DOS prompt; for example, typing "DEL *.BAK"
would delete all files in the current directory with the
extension "BAK". If you need to run several program you can
invoke a DOS shell simply by pressing <Enter>. To return to
Unity, type "EXIT" at the DOS command line - you will be right
back where you started.
Log Drive/Path <CtrlJ><CtrlD>
Changes the active drive and directory.
Show System Info <CtrlJ><CtrlV>
Shows a variety of statistics about the file being edited in
the current window, as well as certain system information: the
full name of the file; whether it has been modified or not; the
number of lines, bytes, and words in the file; the current time
and date; the amount of memory remaining; the version of DOS
being used; the amount of space remaining on the currently
logged drive; and the current drive and directory.
Because some of the file statistics (notably word count) can
take a long time to computer, you may want to skip them by
pressing any key while they are being updated. This tells
Unity to stop what it is doing and jump ahead to the system
information section.
Show Available Memory <CtrlJ><CtrlR>
Shows you the amount of random access memory (RAM) available.
File Directory
Shows you a directory listing. At the prompt box enter a file
mask; for example:
C:\DOCS\*.DOC
shows you all the files in subdirectory DOCS on drive C that
have the extension .DOC. If a drive or path is not specified,
the default directory is assumed. Once a mask has been
entered, all files matching the search criteria will be
displayed in sorted order in a pop-up window. If the window is
too small for all the file names, you can scroll the list using
the cursor keys: <PgUp> and <PgDn> scroll the display one
screenful, <Home> scrolls to the first file in the list, and
<End> scrolls to the last file.
Chapter 17. System Commands Page 43
Page 44 Chapter 17. System Commands
Chapter Eighteen
Default Options
Set Undo Limit <CtrlJ><CtrlU>
Sets the size of the "undo buffer" which stores deleted lines.
The default value is 20 lines. This setting will be saved if
you use the Save Options command.
Set Error Buffer Size
Sets the number of error messages that Unity can retain at
once. The default setting is 20. The valid range is 10 to
100. Changes to this setting will not take affect until you
save your operations, exit, and restart the editor.
Set Support Path
Tells Unity where its optional support files are located (macro
and help files).
Set Default Extension
Sets the default extension for file names. This extension is
automatically added to file names lacking extensions. For
example, if you have set the default extension to .PAS and are
about to load SAMPLE.PAS, you can simply enter SAMPLE when
prompted for a file name.
Set Colors
Changes the colors used for text windows, status lines, pull-
down menus, and so on. You will first be shown a list of the
current color settings. Select the one you want to change by
moving the selection bar with the arrow keys, then press
<Enter>. The choices available to you are displayed, and the
current setting is marked with a snowflake character. You can
change the setting by moving the snowflake with the arrow keys;
as it moves, the item to be changed will reflect the change in
colors. When you find the color you want, press <Enter> to
select it. To restore the original setting, press <Esc>
instead.
Toggle Snow Check
Unity is designed to avoid the annoying screen interference
known as snow on color graphics adapters. Enhanced Graphics
Adapters (EGAs) and many of the newer color adapters do not
have this problem. If you don't experience this problem
either, then turn snow prevention off. This improves Unity's
performance quite noticeably. This command is ignored if you
are using a monochrome adapter.
Chapter 18. Default Options Page 45
Toggle Block Cursor
Hides the blinking cursor you normally see on the screen and
replaces it with a nonblinking "block cursor." You can change
the appearance of the block cursor with the Set Colors command.
The blinking cursor is restored when you leave Unity.
Select Video Mode
Cycles through video modes as supported by the active video
device driver. This command is ignored unless UNITY.VID was
located and loaded by Unity. The video mode can be overridden
at the command line with the /M options, for example:
UNITY /m25x80 myfile.pas
If the indicated video mode is not defined in the video device
driver it will be ignored.
Select DESQview Video Mode
This command is identical to the Select Video Mode command
except the chosen video mode is only used when Unity is running
under DESQview. Since DESQview does not support most video
modes this command is included so you may select a mode to be
used when DESQview is detected.
Toggle Enhanced Keyboard
Enables or disables the use of enhanced keyboard function
calls. Certain keystrokes, such as F11 and F12 are only
available if this mode is turned on and an enhanced keyboard is
present. Certain TSR programs, such as Turbo Lightning, will
not work with this mode enabled. This setting has no affect if
an enhanced keyboard is not installed.
Toggle Dual Display
Enables or disables the use of a secondary monitor for the
output of the compiler displays instead of the use of a window
on the primary screen. This function will have no effect if a
secondary monitor is not detected. Warning! Do not enable
this option if you have QEMM or a similar memory manager
installed and don't have a second monitor. Memory which is
mapped into the video segments will confuse Unity, resulting in
a locked system.
Toggle Tab Expansion
When enabled, expands tab characters to spaces when reading in
files created with other editors. The assumed size of the tabs
is specified with the Set Tab Size command. Spaces may be
converted back to tabs when the file is written (see Toggle Tab
Writing in the next section).
Page 46 Chapter 18. Default Options
Toggle Tab Writing
When enabled, Unity converts strings of blanks to tabs when a
file is written to disk. This will save disk space, especially
for indented programming languages such as Pascal, C, and
assembler. Unity uses the current default tab spacing when it
converts the blanks into tabs.
Toggle Hi-bit Strip
Strips "high-order bits" when reading in files created with
certain editors, notably WordStar, which use the eighth
(highest) bit in a byte to store information. To see whether
you need to use this option, display the file using the DOS
TYPE command. If the last letter in each word is garbled, you
should select this option before reading the file for editing.
Toggle Initial Zoom
If set, new windows are automatically zoomed to fill the screen
when they are opened. This setting does not affect the
behavior of the current Zoom status.
Toggle EMS usage
When enabled, EMS will be used (if available) to reduce the
memory overhead of Unity to less than 10k whenever an external
program, such as a compiler or a DOS shell, is executed.
Sufficient Expanded Memory must be available to Unity for it to
reduce its memory.
Toggle XMS Usage
Similar to Toggle EMS Usage except it is for XMS, the eXtended
Memory System standard. An XMS device driver and sufficient
extended memory must be available for Unity to take advantage.
If both EMS and XMS are enabled, Unity will first attempt to
use XMS, if device driver is not installed or there is
insufficient memory EMS will be used. If neither is available
it may not be possible to reduce memory overhead enough to
execute external programs.
Set Swap Drive
If you wish to enable swapping to disk you must specify the
drive to use for swapping. Swapping to a physical disk is not
recommended. If at all possible limit swapping to a RAM disk.
Disk swapping is used as a last resort only if EMS or XMS is
not available. Leaving the swap drive blank disables this
option which is the default setting.
Save Defaults
Saves the current configuration settings as the defaults. All
values that could be changed in the Options and Program/Options
pull down menus will be saved. It is particularly important
that you specify the drive and directory where Unity's support
files are located unless you define the subdirectory where the
support files are located with the environmental variable
UNITY=.
Chapter 18. Default Options Page 47
You will have the option of of the EXE file being modified with
the new defaults or of saving them to a configuration file
(UNITY.CFG). If you are running under a network you should
always save to a configuration file. You might also wish to
use a configuration file if you desire different settings for
different subdirectories. If you wish to compress UNITY.EXE
with one of the popular run-time compression programs such as
LHEXE your only option is to save to a configuration file.
Page 48 Chapter 18. Default Options
Chapter Nineteen
Tab Commands
Tab Tab or <CtrlI>
Moves the cursor to the next tab. In Insert Mode, any text to
the right of the cursor is moved along with it; in Overwrite
mode, only the cursor is moved.
Backward Tab <Shift-Tab>
If fixed tabs are in effect, this command moves the cursor to
the previous tab stop. Unlike the Tab command, this command
moves only the cursor. It never moves text, whether in Insert
or Overwrite mode. If smart tabs are in effect, this command
does nothing.
Toggle Fixed Tabs <CtrlTab>
When fixed tabs are in effect, the tab stops (normally) start
at column 9 and occur every 8 columns thereafter. By default,
smart tabs are on and fixed tabs are off. When smart tabs are
in use, the tab stops are determined by the locations of the
words on the previous line; the first character in each word
represents a tab stop. To change the locations of the stops
when using fixed tabs, use the Set Tab Size, Edit Tab Line, or
Set Tab Line commands.
Set Tab Size
Sets the default tab size to be used when fixed tabs are on.
This value is also used when expanding tab characters if the
tab expansion option is on. See the discussion of the Toggle
Tab Expansion command.
Chapter 19. Default Options Page 49
Page 50 Chapter 19. Tab Commands
Chapter Twenty
Help Commands
Help Menu <F1>
General help is available both when you are in the menu system
and when you are editing. By selecting U for Utility and H for
help at the main menu, or by pressing <F1>, you can invoke a
menu of topics on which help is available. Move the selection
bar to the desired topic and press <Enter> to get information
on it.
Show Help Summary <CtrlJ><CtrlH>
Displays a brief description of the help system and how it
works.
Status Help
Provides help on the Help system itself and on the status
commands (Show System Info and Show Available Memory).
Cursor Help
Provides help on the basic cursor commands.
Quick Movement Help
Provides help on the Quick cursor movement commands.
Delete Help
Provides help on the text insertion and deletion commands.
Find/Replace Help
Provides help on the Find, Find-and-Replace, and Search-and-
Apply-Macro commands.
File Help
Provides help on the file commands.
Window Help
Provides help on the window commands.
Block Help
Proves help on the block commands.
Text Help
Provides help on the text formatting commands.
Tab Help
Provides help on tab commands.
Chapter 20. Help Commands Page 51
Utility Help
Provides help on the commands that give access to system-level
functions.
Settings Help
Provides help on commands that change default settings or that
toggle particular options on and off.
Program Help
Provides help on the compiler support commands.
Macro Help
Provides help on using the macro commands.
Function Key Help
Provides a quick reference list, showing all the commands
assigned to function keys.
Page 52 Chapter 20. Help Commands
Chapter Twenty-One
Programming Commands
Project <F9>
If the primary file has the extension .PJU it will process the
project files and execute compiler commands as necessary. See
the PROJECT chapter for additional details.
If the primary file does not have the extension .PJU then this
command command will simply process the primary file, selecting
the necessary tool by checking the file extension.
If the default extension of a file has not been bound to a
compiler or assembler (using the installation program) the
first compiler (TPC.EXE by default) will be used.
Run Tool
Unity supports up to ten compilers, assemblers or programming
tools. Several have been preinstalled. You may change or
modify these settings with the installation program. When a
tool is installed an entry for it is automatically added to the
drop down menu. For convenience you may wish to configure a
key to invoke an often used tool.
Some of the programs that have been installed are:
Tool 1 <AltC>:
Menu name: Compile
Program name: TPC.EXE
Primary extension: PAS
Alternate extension:
Options: /Q/M/V %1
Compiler: Yes
Run project: No
Pause? No
Prompt? No
Run filter: On error
Filter: FERROR.EXE
Filter options: %1
Chapter 21. Help Commands Page 53
Tool #2 <AltA>:
Menu name: Assemble
Program name: TASM.EXE
Primary extension: ASM
Alternate extension:
Options: /T/M5 %1
Compiler? Yes
Run project? No
Pause? No
Prompt? No
Run filter? Always
Filter: FERROR.EXE
Filter options: %1
Tool #3 <AltD>:
Menu name: Debugger
Program name: TD.EXE
Primary extension:
Alternate extension:
Options: %B%N
Compiler? No
Run project? Ask
Pause? No
Prompt? Yes
Run filter? Never
Filter:
Filter options:
Since Turbo Debugger is not a compiler, several of the fields
are unused. These are: Run Filter, Filter, and Filter
Options. The installation program will not allow you to set
any of these values when "Compiler?" is NO and will force
default values into these fields.
Tool #4 <AltP>:
Menu name: pRofiler
Program name: TPROF.EXE
Primary extension:
Alternate extension:
Options: %B%N
Compiler? No
Run project? Ask
Pause? No
Prompt? Yes
Run filter? Never
Filter:
Filter options:
The first capital letter is used for the menu hotkey, in this
case 'R'. This is to avoid conflict with the Project command.
Page 54 Chapter 21. Programming Commands
If you have MASM 5.x instead of TASM you should change the Tool
2 settings to:
Menu name: Assemble
Program name: MASM.EXE
Primary extension: ASM
Alternate extension:
Options: /T %1;
Compiler? Yes
Run project? No
Pause? No
Prompt? No
Run filter? Always
Filter: FERROR.EXE
Filter options: %1
Note the %1 under OPTIONS. This is to indicate to Unity where
to place the name of the file. You could also place multiple
%1 codes in the options line such as '/T %1 %1 ;'. The
pseudo-variables that are supported are:
%1 The full path, filename, and extension of the file,
e.g. "C:\SOURCE\MYPROG.PAS*". When used in
"Filters Options" it is replaced by the filename of
the file containing the error messages (ERR.$$$ by
default).
%2 Only used for "Filter Options". It is replaced by
the filename of the source code file that was
compiled/assembled. When a compile is executed
from a project file command line options are also
passed along, to separate the filename from the
command line options it is assumed that the
filename is the last item on the command line
(separated by spaces). This may not be correct in
all cases. I am currently researching alternatives
to this system.
%B The pathname of the current file with a backslash
if required, e.g. "C:\STUFF\"
%D The filename (no path or extension) of the primary
file. If a primary file has not been specified the
filename of the current file will be used.
%E Just the extension of the current filename without
the preceding period, e.g. "PAS"
%F The name and extension of the file, without the
path, e.g. "MYPROG.PAS"
%N Only the name of the current file, e.g. "MYPROG"
%P The path of the current file, e.g. "C:\SOURCE"
%% Indicates to place a single % character in that
position.
When a program is compiled or assembled all files loaded into
the editor that have been modified will be saved. When the
compiler or assembler is run the standard output is redirected
into a file.
Chapter 21. Programming Commands Page 55
After completion of the compile/assemble, the filter program is
execute (if required) to convert the output of the
compiler/assembler to the format Unity understands.
If any errors were detected the first error message is
displayed in a window and the cursor is moved to the the
offending line. The offending file will "ZOOMED" to fill the
screen.
A program installed as a tool doesn't necessarily need to be a
compiler type tool to be treated as one. Included in the
auto-installation database is a GREP. While this is certainly
not a compiler it is configured as one to provide a useful
function to the environment. When GREP is executed (you are
prompted for a command line) the redirected output is filtered
by GFILT.EXE so that you can use the error-detection and line-
jumping feature of Unity to move to files and lines containing
the desired text. This provides a text search facility that
can do regular expression searches across multiple files. Thus
if you are making a change that can affect many different files
in your program the search for the text to change is
simplified.
Execute Alt-E
Forces the extension EXE or COM onto the primary file name or
the current file name (if no primary file) and executes it. If
the file has been modified since the last save or compile or if
the last compile was unsuccessful, you will be asked if you
wish to recompile (Project) before running the program.
You are given a chance to change the command line options
passed to this program.
Build all
Causes all files listed in a project file to be treated as out
of date. This results in all commands listed to be executed,
except for commands skipped due to conditional project commands
(see #IFDEF and #IFNDEF).
Symbols
Allows you to define symbols and string macros to be used in
the processing of a project file without having to modify the
project file. Multiple symbols may be defined by separating
them by spaces. See the project file chapter for additional
information and examples. See also #VAR on page 63.
Page 56 Chapter 21. Programming Commands
Chapter Twenty-Two
Programming Options
Set Tool Options
Sets the command line options for the programming tool. The
changes remain in effect until you quit the editor. If you
wish to make permanent changes to the tool options you may do
so with installation program or by using the Save Options
command.
Set Autosave Timer
You can have the editor automatically save your work at
intervals by setting this timer to the number of minutes
between saves you you wish. If the timer is set to zero (0) it
is disabled. The timer does not start until a change has been
made in one of the files loaded into the editor. Once the
timer has come due, the files will not be saved until there is
at least 30 seconds of keyboard inactivity to avoid
interferring with your editing.
Set Primary File <AltF>
Sets the name of the primary file to use when compiling,
assembling, or running a tool.
Make Current File Primary <AltH>
Makes the active file the primary file. Using this command, a
simple macro can be created to automatically update a program
from the command line, returning to the command line upon
successful completion or positioning properly in the editor if
an error is encountered:
<AltH><F9><AltQ>
This short macro is simple: make the current file the primary
file, run the project utility, and exit. Since macros are
always canceled if an error occurs, the <AltQ> command will be
skipped if a compiler error occurs. To invoke this macro from
the command line indicate the project file name (or main source
file name) and use the /# command, where # is the macro number,
e.g.:
UNITY /7 DATABASE.PJU
Next Error File <CtrlF5>
Moves to the next file containing errors from the last compile
or assemble.
Chapter 22. Programming Commands Page 57
Next Error <F5>
Move to the next line containing an error. If no more errors
are found in the current file a check will be made for errors
in other files already in memory. Files with errors that are
not already active in Unity will NOT be checked. See also Next
Error File.
Previous Error <F4>
Move to the previous line containing an error. If no more
errors are found in the current file a check will be made for
errors in other files already in memory. Files with errors
that are not already active in Unity will NOT be checked. See
also Next Error File.
Page 58 Chapter 22. Programming Options
Chapter Twenty-Three
Miscellaneous Commands
Activate Menus <F10>
Activates Unity's menu system.
Abort <CtrlU>
Halts an operation in progress. The keyboard buffer is checked
regularly to see if the Abort command has been issued; if it
has, the buffer is emptied, macro execution or recording is
turned off, and the operation is stopped. This command must
not be assigned to a multiple byte key sequence for it to work
properly.
Undo Last Deletion <CtrlQ><CtrlU>
Restores whole lines deleted with the delete-line command
(CtrlY) or the delete-block command (<CtrlK> Y). It does not
restore single characters or words. To undo your most recent
changes to the current line, use the restore-line command
(CtrlQ L). The size of the "undo buffer" is specified with the
set-undo-limit command.
Restore Line <CtrlQ><CtrlL>
Will undo any changes made to a line of text as long as you
have not left the line. The line is restored to its previous
contents regardless of the changes made.
Chapter 23. Programming Options Page 59
Page 60 Chapter 23. Miscellaneous Commands
Chapter Twenty-Four
Project
Probably the most powerful feature of this editor is its built in
project (known as MAKE in some circles) capability.
To use the project feature you must create a dependency file with
the extension PJU. This is a text file (you can create it with
Unity) with a very simple format:
Target1 [target2 : ] dependency list ...
command1
[command2]
.
.
.
The first filename listed on a line is the file you wish to see
if it is up to date. If you wish to list two target files you
must place a color ':' after the second file name (the color must
have a space character on both sides). The colon is optional if
there is only one target file.
Unity allows two target file names to support compilers that
produce two target files with a single compiler execution. For
example, Oberon-M produces an OBJ and REF file for each module.
Ada and Modula 2 are additional examples of compilers that
usually produce two target files.
Any file names that follow the target file name(s) (all filenames
are separated by spaces, commas, tabs, or the '+' character) are
files that the target file(s) depend upon. For example, if you
have a unit (or module) called TEST.TPU from the source file
TEST.PAS that uses SCREEN.TPU and STUFF.INC you would list it as:
TEST.TPU TEST.PAS SCREEN.TPU STUFF.INC
OTHER.TPU,EXAMPLE.PAS
The dates of the first file is compared to all the files that
follow. If it is older than at least one of the listed files or
if it does not exist it is out of date and must be processed.
If your dependency list is large you can break it across multiple
lines by placing the "+" character at the end of a list you wish
continued on the next line:
TEST.TPU : TEST.PAS SCREEN.TPU +
STUFF.INC
Chapter 24. Project Page 61
This is functionally equivelent to the previous example. The "+"
character MUST be preceded by at least one space or it will be
confused as a filename separator. Comment lines may NOT be
placed between dependency list lines. The following is illegal:
TEST.TPU TEST.PAS SCREEN.TPU +
# More stuff
STUFF.INC
The command(s) used to process must be on the lines IMMEDIATELY
following the dependency line (you can place the comment
character '#' between them if you wish more white-space). You
specify the command to execute with its MENU name followed by the
command line you wish to pass to the program, which should
normally include the source code file name or a response
filename, e.g.:
COMPILE /M TEST.PAS
You may specify as many command lines as you wish, delimiting the
end of the list with a blank line:
ASSEMBLE TEST.ASM
COMPILE /M TEST.PAS
Comment lines (lines beginning with "# " will not terminate the
command list so you can properly document your project files with
comments in the proper locations.
A complete dependency list and command might look like this:
TEST.TPU TEST.PAS
COMPILE /V TEST.PAS
The syntax for a two target file dependency is almost identical:
TEST.OBJ TEST.REF : TEST.MOD
OBERON TEST.MOD DEF
The options that you installed for the compiler (with UINST) will
be ignored. You must specify any command line options that are
needed to properly compile or assembler the file.
If the file is up to date, the processing of all lines will be
skipped up to the first blank line. All leading and trailing
spaces are stripped from lines before processing.
If the menu name you have chosen for one of your tools contains
any imbedded spaces you must use an underscore character instead,
e.g. Turbo_Pascal.
For an example of project files see SIMPLE.PJU and COMPLEX.PJU.
Page 62 Chapter 24. Project
24.1 Project File Commands
There are several special commands that are allowed in the
project file all of these begin with the '#' character (which
must be the first nonspace character on the line):
# This character followed by at least one space denotes
a comment. The line will be ignored.
#EXECUTE Executes the compiler command without checking for
dependencies. This is useful if you always want a
command executed. Follow the directive with the menu
name and options you wish:
#EXECUTE COMPILE /V MAIN.PAS
#SHELL Executes a program that is not installed as a tool in
Unity. If the #SHELL command is not part of a
dependency command list it will be executed
automatically each time you process the project file.
If an error occurs there will be no line number
detection, although processing of the project file
will halt:
#WINDOW Same as the #SHELL command, except the execution will
occur within the a window (or on the secondary
screen). The executed program must send its output
to the Standard Output Device or the Standard Error
Device or use standard BIOS functions for the display
to be properly contained within the execution window.
If the program writes directly to screen memory it
may bleed into the editor screen, though Unity will
update the screen upon completion of the execution.
Programs that write directly to the screen can be run
safely if a second monitor is installed and the Dual
Display mode is enabled.
#VAR Defines a variable for use in string expansion. This
allows you to define a string at the start of a
project file and have it automatically inserted in
the proper locations. The variable name is limited
to 8 characters and the string used for expansion is
limited to 67 characters. A string is limited to 255
characters after macro expansion. If a dependency
list line might exceed this limit you should break up
the list using the "+" character (see example on page
61).
Often used macros can be defined in the DOS
environment. For example, at the DOS prompt enter:
SET $(asm)=assembler /m %%B%%N
Chapter 24. Project Page 63
Note that two '%' characters must be entered where
you wish a single '%'. This is to prevent the
character from being stripped out by the DOS command
interpreter. The environment is checked after the
internal macro table so they can be overridden by the
project file or from the Program/Options menu.
You can also define a string macro from the
Program/Symbols menu choice. Simply enter the
definition without the #VAR statement, e.g.
BASE=MYFILE. You should never use an equal character
(=) in a symbol as that is how macro definitions are
detected.
Examples of #VAR statements.
To define the path for assembler files:
#VAR lib=c:\lib\
Then to use the string macro:
$(lib)VIDEO.OBJ $(lib)video.asm
assemble /m $(lib)video $(lib)video
The previous two lines would be expanded to:
C:\LIB\VIDEO.OBJ c:\lib\video.asm
assemble /m c:\lib\video c:\lib\video
This feature makes it easy to pass a project file to
someone else and be able to use it with only a minor
modification should their system configuration be
different from yours.
If you forget to assign a value to a $(name) variable
it will not be expanded, and the project file
processing will halt with an error. If you wish to
assign an empty string to a variable simply leave off
the portion after the '=' character:
#VAR lib=
String expansion occurs before any other processing
of the stirng, so you can even use it with internal
project file commands or to change the way commands
work:
#VAR asm=assemble /m/dshareware
$(asm) video
This would be expanded to:
Page 64 Chapter 24. Project
assemble /m/dshareware video
Avoid creating macros that cause an infinite loop
which will lock up the system, requiring a reboot:
#VAR obj=$(lib)
#VAR lib=$(obj)
The command line variable options used when defining
the command line with UINST may also be used. These
are indentical in definition as described on page 55,
with one addition (see below), except %1 refers to
the first target file name and %2 refers to the
second (if defined). All subsets, such as %N, refer
to the first target filename.
This dependency will produce the following variables:
C:\PASCAL\MODULE.OBJ c:\pascal\module.asm
%N = MODULE
%1 = C:\PASCAL\MODULE.OBJ
%B = C:\PASCAL\
You can nest variable definitions:
#VAR asm=assemble %B%N %1
#VAR lib=c:\obj\
$(lib)STUFF.OBJ %B%N.asm
$(asm)
This is fully expanded to:
C:\OBJ\STUFF.OBJ c:\obj\stuff.asm
assemble c:\obj\stuff c:\obj\stuff.obj
There is an additional variable available only in
project dependency files:
%L This is replaced by the entire dependency list
(target file(s) not included.
This variable is particularly useful when linking
programs:
STUFF.EXE : stuff.obj parse.obj file.obj
link %L, %1;
The link command is expanded to:
link stuff.obj parse.obj file.obj, stuff.exe;
Chapter 24. Project Page 65
One note of caution. Internally, the dependency list
can not exceed 127 characters. While parsing the
project file each group of dependencies will be
stored as a single string even if they are broken up
with the '+' directive. If the line exceeds 127
characters part of the list will be lost, possibly
resulting in an incomplete link or some other error.
Note that DOS is also limited to 127 characters for
the command line and other data on a final command
line could bring the string length past this limit.
#DEFINE Defines a symbol that is used with the conditional
project commands #IFDEF and #IFNDEF. If no symbols
are specified then all symbols will be undefined.
There is a limit of 10 symbols of up to 10 characters
each. Case is ignored.
#UNDEFINE Undefines the symbol(s) specified.
#IFDEF If the symbol(s) is defined the commands up to the
#ELSE or #ENDIF are executed. If the symbol(s) is
not defined it will skip to the #ELSE or #ENDIF
statement before continuing to process commands.
Nested #IF commands are not allowed.
#IFNDEF If the symbol is not defined the commands up to the
#ELSE or #ENDIF are executed. If the symbol is
defined it will skip to the #ELSE or #ENDIF statement
before continuing to process commands. Nested #IF
commands are not allowed.
#ELSE Used in conjunction with the #IFDEF and #IFNDEF
commands. This command is optional.
#ELSEIF Ends a set of commands grouped by the #IFDEF or
#IFNDEF command and begins a new #IFDEF command. You
must follow this command by at least one symbol name.
See also #IFDEF.
#ENDIF Signifies the end of a conditional project block.
#NOWARN A search for error messages will only be made if an
explicit nonzero return code was detected. This
enables you to pass files that may have acceptable
warning messages even though the compiler/assembler
is configured to always scan for error messages. Use
special care with this command to avoid undetected
error messages.
#WARN Cancels the #NOWARN directive. Normal error
processing will be done.
#BUILDON Causes all subsequent files to be treated as if they
were out of date.
Page 66 Chapter 24. Project
#BUILDOFF Returns to the default mode of testing file dates to
decide if a recompile is in order.
# Turn off warning messages
#NOWARN
LOWSTUFF.OBJ lowstuff.asm
assemble lowstuff.asm
# Turn warning messages back on. Note the blank line after
# the assemble command. This is to prevent skipping of the
# #WARN directive if the file is up to date.
#WARN
#IFDEF demo
DEMO.TPU demo.pas
compile demo.pas
#ENDIF
# The following file is dependent upon the previous modules
# created in this project file as well as a new source file.
MYPROG.EXE myprog.pas demo.tpu lowstuff.obj
#IFDEF demo
compile /ddemo myprog.pas
#ELSE
compile myprog.pas
#ENDIF
24.2 Inference Rules
Also supported are inference rules. Inference rules automate a
list of commands for a given pair of extensions in the project
file if a command list is not found immediately after the
dependency list.
The syntax is :
.targetextension.sourceextension
command1
[command2]
.
.
.
For example:
.OBJ.ASM
assemble /m %B%N, %1
Chapter 24. Project Page 67
test1.obj : test1.asm stuff.inc
test2.obj : test2.asm stuff.inc
assemble /zd test2
This example will execute the single command "compile /m
test1.asm, test1.obj" (after macro expansion) if test1.obj is
found to be out of date. The pseudo-variable %B%N and %1 were
used in the inference rule so that the filename of the active
file would be used. For the second dependency, test2.obj, the
inference rule will not be used since it includes an explicite
command.
The command list for an inference rule must be terminated with a
blank line. Multiple commands are allowed in an inference rule.
There is a limit of 10 inference rules in a project file.
Page 68 Chapter 24. Project
Appendix A
Creating Custom Error Filters
To make Unity as versatile as possible an external program is
required to parse the screen output (which is redirected to a
file) of each compiler. FERROR.EXE is included with Unity which
scans for errors in the output of Turbo Pascal, Turbo Assembler,
Turbo C++, Microsoft MASM 5.1, and QuickByte Pascal (the type is
automatically detected) as well as most other Microsoft
compilers. A86ERROR.EXE is also supplied which filters the error
messages for the A86 assembler. Alternately, you can use an AWK
program and corresponding AWK script to scan for errors.
Unity was tested with AWK 3.00, written by Rob Duff. This
program is readily available from a your local computer BBS.
Besides being a full implementation of AWK, it is a completely
free program! Commercial AWK programs should work with the
included AWK program files but none have been tested.
The error filter can be a compiled program or an AWK script. The
advantage of a compiled program over an AWK script processor is
simple . . . speed. AWK script processing tends to be a bit on
the sluggish side. Because, however, AWK is such a versatile
programming "language" it is fully supported in Unity.
Four awk files are supplied, TPC.AWK which is used to find errors
in Turbo Pascal programs; TASM.AWK which locates errors in Turbo
Assembler programs; MASM.AWK which is designed for Microsoft's
Macro Assembler version 5.x; and REALCOB.AWK for use with Realia
Cobol. You can customize Unity for a different compiler or
assembler by creating your own filter program or AWK script .
Unity expects the output of the program to be sent to the
Standard Output Device (the screen) and to be in the following
format:
FileName, LineNumber, ColumnNumber, ErrorMessage
FileName is the name of the file the error occurred in. If it is
unknown leave it blank but don't forget the comma.
LineNumber is the line that the error occurred on. If it is
unknown output a 0 or 1.
ColumnNumber is the column where the error occurred. Again, if it
is unknown use 0 or 1.
ErrorMessage is the error message that the compiler or assembler
output. If it is unknown pass something like "Unknown error".
Appendix A. Creating Custom Error Filters Page 69
Examples:
THISPROG.PAS, 23, 45, Error 36: BEGIN expected.
MYSTUFF.ASM, 5, 0, **Error** Undefined symbol: Du
MYSTUFF.ASM, 11, 0, *Warning* Extra characters on line.
MYSTUFF.ASM, 28, 0, **Fatal** Unexpected end of file encountered.
Since Turbo Assembler does not detect the column number the last
three examples return 0.
Unity will jump to the the line and column in the file indicated
by the first error record it finds. If line number is unknown
the cursor will be placed on the first line. If the column is
unknown the cursor will be placed at the start of the line.
The source code for FERROR.EXE is provided. It is written in
Turbo Pascal 5.5 and requires no additional units other than the
DOS unit which is provided with TP. If you find you must create
your own error filter you may wish to use FERROR as an example or
to modify it if your compiler is similar to one already
supported. The programs currently supported by FERROR are:
Turbo Pascal 5.x
Turbo Assembler
Turbo C++ (may not be complete)
Turbo Linker
QuikByte Pascal & Linker
Microsoft Masm 5.x
There is nothing requiring you to use a single program for all
your error filtering. The installation program (UINST) allows
you to specify a different error filter for each separate
compiler/assembler.
Also included is GFILT.EXE. This is a filter program for use
with the GREP program included with many Borland languages.
Although GREP is not a compiler it is being treated as one by
Unity. When GREP is executed from within the editor you are
prompted to complete the command line. You must enter the text
to search for and the filename (or wildcard) to search. After
the search GFILT converts the output of GREP into the error
message format. Since Unity will treat the results the same as
error messages you will be conveniently switched to the first
file containing the found text and positioned at the beginning of
the proper line. You can then use the Find Next Error (F5) or
Find Previous Error (F4) keys to jump from location to location.
If you use a different GREP program you may need to modify the
installation of GREP (specifically, the command line options) and
possibly create your own filter program.
Page 70 Appendix A. Creating Custom Error Filters
Currently being written, but not yet complete, are error filters
for Zortec C++, Clipper, and Oberon-M. The Turbo C++ error
filtering is also being improved.
If you wish to create your own tool for use with Unity you should
have it output error messages and information in the same format
the filters convert to. Select NEVER for the "Run Error Filter"
option as well. This will greatly improve performance since the
filtering step can be skipped entirely.
Appendix A. Creating Custom Error Filters Page 71
Page 72 Appendix A. Creating Custom Error Filters
Appendix B
Customizing The Help File
Once you have decided which tools you will install into the
editor you will probably want to customize the help text for each
tool. The file UNITY.TXT is the raw text file you must modify.
When you make any changes with UINST the text file is
automatically "compiled" to UNITY.HLP.
There are a number of special commands available for use in the
help file. These are:
^A Start highlight text.
^B Start alternate highlighting.
^C End highlighting.
^Fnn^F Insert menu name for tool number nn.
^Pnn Insert primary key string for command nn.
^S Insert secondary key string for command nn.
@nn Start help for topic nn - must be in first
column.
& Center the text - must be in first column.
The text that follows will be highlighted
and centered.
) Force new line - must be in first column.
] Force page break - must be in first column.
To insert any of the control characters with Unity press ^P
followed by the control character.
Examples:
Here is some text with ^Ahighlighting^C
)This line will not be merged with the previous line.
But his line will be merged with the previous line.
]
This line will be on a new page.
This line contains the name of tool #1: ^F1^F
Here's the primary keystring for command 1: ^P1
The secondary keystring for command 1: ^S1
&^AThis is highlighted and centered^C
Studying UNITY.TXT will help you understand how the formatting
characters work.
Appendix B. Customizing The Help File Page 73
Page 74 Appendix B. Customizing The Help File
Appendix C
Running Under DESQview
Unity was designed to be well behaved under DESQview. Although
direct screen writing is used for fast screen updates, a request
is made to DESQview for an alternate video buffer. Unity also
makes it a point not to hog system resources. Thus programs
running in the background will be given control between every
keystroke. Since the computer runs much faster than anyone can
type you will never notice this interruption.
When you install Unity into DESQview it's best to give it as much
convetional memory as possible and at least 384k of EMS or XMS.
If you suffer an "Insufficient Memory" error when executing an
external program such as a compiler you will need to increase the
EMS/XMS allocation or enable disk swapping.
DESQview does not handle nonstandard video modes very well.
Therefore it is recommended that you limit yourself to the 25x80
video mode. If you use one of the other modes and activate
DESQview, Unity's screen will be blanked. When you return to
Unity you can recover the screen by pressing any key such as one
of the arrow keys. This will cause Unity to completely update
the screen unless the menu was active when you activated
DESQview, in which case the screen will not be redrawn completely
until you exit the menu (keep pressing ESC).
Appendix C. Running Under DESQview Page 75
Page 76 Appendix C. Running Under DESQview
Appendix D
Acknowledgments
I wish to thank Ken Doebler for allowing me to use his board, The
Software Resource at Fido node 1:102/330, as a beta test center.
The latest version of this program can always be found on his
board at (213)214-2018, 2400 baud. You can also find Unity on
W.L.A. B.B.S at (213)838-9229 at HST speeds, though access to
this board may be limited.
Much appreciation to the beta testers who provided assistance to
in the creation of this program:
Basil Groman
Michelangelo Jones
Cliff Klinert
Ken Leon
David McClure
Alex Pistyur II
Todd Savoie
William Chris Serrano
Legal Stuff
Portions Copyright Borland International, Inc.
Portions Copyright TurboPower Software
Products mentioned are copyright, trademarks or registered
trademarks of their respective companies.
Appendix D. Acknowledgments Page 77
Page 78 Appendix D. Acknowledgments
Index
# 63 Bottom of Block 21
+ 61 Bottom of Screen 20
%% 55 Build all 56
%1 55, 65
%2 55 C
$() 63 Center Line 38
%B 55, 65 Character Left 19
#BUILDOFF 66, 67 Character Right 19
#BUILDON 66 Close All But Current Window
%D 55 27
#DEFINE 66 Close Window 29
%E 55 Control Character 23
#ELSE 66 Copy Block 31
#ELSEIF 66 Cursor Help 51
#ENDIF 66
#EXECUTE 63 D
%F 55 Default Options 44
#IFDEF 66 Delete Block 31
#IFNDEF 66 Delete Character Left 23
%L 65 Delete Current Character 23
%N 55, 65 Delete Help 51
#NOWARN 66 Delete Line 24
%P 55 Delete Line (no undo) 24
#SHELL 63 Delete to End of Line 24
#UNDEFINE 66 Delete Word Left 23
#VAR 63 Delete Word Right 23
#WARN 66 Down To Equal Indent 22
#WINDOW 63
E
A Edit Another File 27
Abandon All Files 27 Edit file 29
Abort 59 Edit Macro 33
Abort Macro if Blank Line 35 End Block 31
Abort Macro If End Of File 35 End of File 20
Abort Macro if Out of Block 35 End of Line 20
Activate Menus 59 Execute 56
Add Window 29 Expanded memory 7, 47
Autoindent 37 Extended memory 7, 47
Automatic macro execution 9 Extension 45
B F
Backward Tab 49 FERROR.EXE 69
Basic Movement Commands 19 File Commands 27
Begin Block 31 File Directory 43
Beginning of File 20 File Help 51
Beginning of Line 20 Find 25
Block Commands 30 Find And Replace 25
Block Help 51 Find-and-Replace 25
Index Page 79
Find Next 26 Next Error 58
Find/Replace Help 51 Next Error File 57
Force Autoindent Mode 37 Next Sentence 22
Force Insert Mode 37 Next Window 29
Force Overtype Mode 37
Force Word Wrap On 37 O
Format Commands 36 Overview 7
Function Key Help 52 Overwrite 37
G P
Getting Started 8 Page Down 19
Go to Column 21 Page Up 19
Go to Line 21 Playback 33
Go to Window 21 Playback Macro 1..9 33
Playback Scrap 33
H Playback scrap 1..9 times 33
Help Commands 50 Previous Cursor Position 21
Help Menu 51 Previous Error 58
Previous Sentence 22
I Previous Window 29
inference rules 67 Primary File 57
Insert 37 Program Help 52
Insert And Delete 23 Programming Commands 53
Insert Control Character 23 Programming Options 57
Insert Line 23 Project 53, 60
Invoke DOS Shell 43
Q
J Quick Movement Help 51
Jump to Marker 0..9 21 Quick Reference Guide 12
Jump To Marker By Menu 22 Quit 29
L R
License Agreement 3 Read File Into Window 27
Line Down 19 Reformat Block 39
Line Up 19 Reformat Paragraph 39
Load Macros 34 Registration and License
Log Drive/Path 43 Information 2
Lower Case 38 Registration Information 3
Repeat Macro 35
M Resize Active Window 29
Macro Commands 33 Restore Line 59
Macro Help 52 Run Tool 53
Macro Looping Commands 35
Make Current File Primary 57 S
Margin Release 38 Save All and Exit to DOS 27
Mark Current Line 31 Save and Continue Edit 27
Mark Current Word 31 Save Defaults 47
Markers And Jumping 21 Save File and Close Window 27
Miscellaneous Commands 59 Save/switch files 27
Miscellaneous Toggles 40 Scroll Down 19
Move Block 31 Scroll Up 19
Search And Apply Macro 26
N Select DESQview Video Mode 46
New Line 23 Select Video Mode 46
Page 80 Index
Set Autosave Timer 57 Toggle Enhanced Keyboard 46
Set Colors 45 Toggle Fixed Tabs 49
Set Default Extension 45 Toggle Hi-bit Strip 47
Set Error Buffer Size 45 Toggle Initial Zoom 47
Set Left Margin 38 Toggle Insert Mode 37
Set Marker 0..9 21 Toggle Key Help 41
Set Marker Via Menu 22 Toggle Macro Record 33
Set Primary File 57 Toggle Marker Display 41
Set Right Margin 38 Toggle Right Justify 37
Set Support Path 45 Toggle Snow Check 45
Set Swap Drive 47 Toggle Tab Expansion 46
Set Tab Size 49 Toggle Tab Line 41
Set Temporary Margin 38 Toggle Tab Writing 47
Set Temporary Margin To Cursor Toggle Word Wrap 37
38 Toggle XMS Usage 47
Set Tool Options 57 Toggle Zoom Mode 29
Set Undo Limit 45 Top of Block 21
Settings Help 52 Top of Screen 20
Shift Block Left 32
Shift Block Right 32 U
Show Available Memory 43 Undelete 59
Show Help Summary 51 Undo Last Deletion 59
Show System Info 43 Up To Equal Indent 22
Status Help 51 Update Screen 35
Store Macros 34 Upper Case 38
Swap drive 47 Utility Help 52
Symbols 56
System Commands 42 V
video device drivers 10
T Video mode 9
Tab 49
Tab Commands 49 W
Tab Help 51 Window Commands 29
Text Help 51 Window Help 51
The Editing Screen 11 Word Left 19
Toggle Autoindent 37 Word Right 19
Toggle Block Cursor 46 Write Block to File 27
Toggle Block Display 31 Write to Named File 28
Toggle Case 38
Toggle Compress At Wrap 38 Z
Toggle Dual Display 46 Zoom The Current Window 29
Toggle EMS usage 47
Index Page 81
Contents
Chapter 1 Registration and License Information 3
Registration Information . . . . . . . . . . . . . 3
License Agreement . . . . . . . . . . . . . . . . 3
Chapter 2 Overview 7
Chapter 3 Getting Started 9
Chapter 4 The Editing Screen 11
Chapter 5 Quick Reference Guide 13
Chapter 6 Basic Movement Commands 19
Character Left . . . . . . . . . . . . . . . . . 19
Character Right . . . . . . . . . . . . . . . . 19
Word Left . . . . . . . . . . . . . . . . . . . 19
Word Right . . . . . . . . . . . . . . . . . . . 19
Line Up . . . . . . . . . . . . . . . . . . . . 19
Line Down . . . . . . . . . . . . . . . . . . . 19
Scroll Up . . . . . . . . . . . . . . . . . . . 19
Scroll Down . . . . . . . . . . . . . . . . . . 19
Page Down . . . . . . . . . . . . . . . . . . . 19
Page Up . . . . . . . . . . . . . . . . . . . . 19
Beginning of File . . . . . . . . . . . . . . . 20
End of File . . . . . . . . . . . . . . . . . . 20
Beginning of Line . . . . . . . . . . . . . . . 20
End of Line . . . . . . . . . . . . . . . . . . 20
Top of Screen . . . . . . . . . . . . . . . . . 20
Bottom of Screen . . . . . . . . . . . . . . . . 20
Chapter 7 Markers And Jumping 21
Go to Line . . . . . . . . . . . . . . . . . . . 21
Go to Column . . . . . . . . . . . . . . . . . . 21
Go to Window . . . . . . . . . . . . . . . . . . 21
Top of Block . . . . . . . . . . . . . . . . . . 21
Bottom of Block . . . . . . . . . . . . . . . . 21
Jump to Marker 0..9 . . . . . . . . . . . . . . 21
Set Marker 0..9 . . . . . . . . . . . . . . . . 21
Previous Cursor Position . . . . . . . . . . . . 21
Up To Equal Indent . . . . . . . . . . . . . . . 22
Down To Equal Indent . . . . . . . . . . . . . . 22
Next Sentence . . . . . . . . . . . . . . . . . 22
Previous Sentence . . . . . . . . . . . . . . . 22
Set Marker Via Menu . . . . . . . . . . . . . . 22
Jump To Marker By Menu . . . . . . . . . . . . . 22
i
Chapter 8 Insert And Delete 23
New Line . . . . . . . . . . . . . . . . . . . . 23
Insert Line . . . . . . . . . . . . . . . . . . 23
Insert Control Character . . . . . . . . . . . . 23
Delete Current Character . . . . . . . . . . . . 23
Delete Character Left . . . . . . . . . . . . . 23
Delete Word Right . . . . . . . . . . . . . . . 23
Delete Word Left . . . . . . . . . . . . . . . . 23
Delete to End of Line . . . . . . . . . . . . . 24
Delete Line . . . . . . . . . . . . . . . . . . 24
Delete Line (no undo) . . . . . . . . . . . . . 24
Chapter 9 Find And Replace 25
Find . . . . . . . . . . . . . . . . . . . . . . 25
Find-and-Replace . . . . . . . . . . . . . . . . 25
Search And Apply Macro . . . . . . . . . . . . . 26
Find Next . . . . . . . . . . . . . . . . . . . 26
Chapter 10 File Commands 27
Edit Another File . . . . . . . . . . . . . . . 27
Abandon All Files . . . . . . . . . . . . . . . 27
Read File Into Window . . . . . . . . . . . . . 27
Write Block to File . . . . . . . . . . . . . . 27
Save and Continue Edit . . . . . . . . . . . . . 27
Save File and Close Window . . . . . . . . . . . 27
Close All But Current Window . . . . . . . . . . 27
Save/switch files . . . . . . . . . . . . . . . 27
Save All and Exit to DOS . . . . . . . . . . . . 27
Write to Named File . . . . . . . . . . . . . . 28
Chapter 11 Window Commands 29
Add Window . . . . . . . . . . . . . . . . . . . 29
Close Window . . . . . . . . . . . . . . . . . . 29
Next Window . . . . . . . . . . . . . . . . . . 29
Previous Window . . . . . . . . . . . . . . . . 29
Resize Active Window . . . . . . . . . . . . . . 29
Toggle Zoom Mode . . . . . . . . . . . . . . . . 29
Zoom The Current Window . . . . . . . . . . . . 29
Chapter 12 Block Commands 31
Begin Block . . . . . . . . . . . . . . . . . . 31
End Block . . . . . . . . . . . . . . . . . . . 31
Copy Block . . . . . . . . . . . . . . . . . . . 31
Move Block . . . . . . . . . . . . . . . . . . . 31
Delete Block . . . . . . . . . . . . . . . . . . 31
Toggle Block Display . . . . . . . . . . . . . . 31
Mark Current Line . . . . . . . . . . . . . . . 31
Mark Current Word . . . . . . . . . . . . . . . 31
Shift Block Left . . . . . . . . . . . . . . . . 32
Shift Block Right . . . . . . . . . . . . . . . 32
Chapter 13 Macro Commands 33
Toggle Macro Record . . . . . . . . . . . . . . 33
Playback Scrap . . . . . . . . . . . . . . . . . 33
ii
Playback scrap 1..9 times . . . . . . . . . . . 33
Playback Macro 1..9 . . . . . . . . . . . . . . 33
Playback . . . . . . . . . . . . . . . . . . . . 33
Edit Macro . . . . . . . . . . . . . . . . . . . 33
Load Macros . . . . . . . . . . . . . . . . . . 34
Store Macros . . . . . . . . . . . . . . . . . . 34
Chapter 14 Macro Looping Commands 35
Repeat Macro . . . . . . . . . . . . . . . . . . 35
Abort Macro if Out of Block . . . . . . . . . . 35
Abort Macro If End Of File . . . . . . . . . . . 35
Abort Macro if Blank Line . . . . . . . . . . . 35
Update Screen . . . . . . . . . . . . . . . . . 35
Chapter 15 Format Commands 37
Toggle Insert Mode . . . . . . . . . . . . . . . 37
Force Insert Mode . . . . . . . . . . . . . . . 37
Force Overtype Mode . . . . . . . . . . . . . . 37
Toggle Autoindent . . . . . . . . . . . . . . . 37
Force Autoindent Mode . . . . . . . . . . . . . 37
Toggle Word Wrap . . . . . . . . . . . . . . . . 37
Force Word Wrap On . . . . . . . . . . . . . . . 37
Toggle Right Justify . . . . . . . . . . . . . . 37
Toggle Compress At Wrap . . . . . . . . . . . . 38
Set Left Margin . . . . . . . . . . . . . . . . 38
Set Right Margin . . . . . . . . . . . . . . . . 38
Set Temporary Margin . . . . . . . . . . . . . . 38
Set Temporary Margin To Cursor . . . . . . . . . 38
Margin Release . . . . . . . . . . . . . . . . . 38
Center Line . . . . . . . . . . . . . . . . . . 38
Toggle Case . . . . . . . . . . . . . . . . . . 38
Lower Case . . . . . . . . . . . . . . . . . . . 38
Upper Case . . . . . . . . . . . . . . . . . . . 38
Reformat Paragraph . . . . . . . . . . . . . . . 39
Reformat Block . . . . . . . . . . . . . . . . . 39
Chapter 16 Miscellaneous Toggles 41
Toggle Tab Line . . . . . . . . . . . . . . . . 41
Toggle Marker Display . . . . . . . . . . . . . 41
Toggle Key Help . . . . . . . . . . . . . . . . 41
Chapter 17 System Commands 43
Invoke DOS Shell . . . . . . . . . . . . . . . . 43
Log Drive/Path . . . . . . . . . . . . . . . . . 43
Show System Info . . . . . . . . . . . . . . . . 43
Show Available Memory . . . . . . . . . . . . . 43
File Directory . . . . . . . . . . . . . . . . . 43
Chapter 18 Default Options 45
Set Undo Limit . . . . . . . . . . . . . . . . . 45
Set Error Buffer Size . . . . . . . . . . . . . 45
Set Support Path . . . . . . . . . . . . . . . . 45
Set Default Extension . . . . . . . . . . . . . 45
Set Colors . . . . . . . . . . . . . . . . . . . 45
iii
Toggle Snow Check . . . . . . . . . . . . . . . 45
Toggle Block Cursor . . . . . . . . . . . . . . 46
Select Video Mode . . . . . . . . . . . . . . . 46
Select DESQview Video Mode . . . . . . . . . . . 46
Toggle Enhanced Keyboard . . . . . . . . . . . . 46
Toggle Dual Display . . . . . . . . . . . . . . 46
Toggle Tab Expansion . . . . . . . . . . . . . . 46
Toggle Tab Writing . . . . . . . . . . . . . . . 47
Toggle Hi-bit Strip . . . . . . . . . . . . . . 47
Toggle Initial Zoom . . . . . . . . . . . . . . 47
Toggle EMS usage . . . . . . . . . . . . . . . . 47
Toggle XMS Usage . . . . . . . . . . . . . . . . 47
Set Swap Drive . . . . . . . . . . . . . . . . . 47
Save Defaults . . . . . . . . . . . . . . . . . 47
Chapter 19 Tab Commands 49
Tab . . . . . . . . . . . . . . . . . . . . . . 49
Backward Tab . . . . . . . . . . . . . . . . . . 49
Toggle Fixed Tabs . . . . . . . . . . . . . . . 49
Set Tab Size . . . . . . . . . . . . . . . . . . 49
Chapter 20 Help Commands 51
Help Menu . . . . . . . . . . . . . . . . . . . 51
Show Help Summary . . . . . . . . . . . . . . . 51
Status Help . . . . . . . . . . . . . . . . . . 51
Cursor Help . . . . . . . . . . . . . . . . . . 51
Quick Movement Help . . . . . . . . . . . . . . 51
Delete Help . . . . . . . . . . . . . . . . . . 51
Find/Replace Help . . . . . . . . . . . . . . . 51
File Help . . . . . . . . . . . . . . . . . . . 51
Window Help . . . . . . . . . . . . . . . . . . 51
Block Help . . . . . . . . . . . . . . . . . . . 51
Text Help . . . . . . . . . . . . . . . . . . . 51
Tab Help . . . . . . . . . . . . . . . . . . . . 51
Utility Help . . . . . . . . . . . . . . . . . . 52
Settings Help . . . . . . . . . . . . . . . . . 52
Program Help . . . . . . . . . . . . . . . . . . 52
Macro Help . . . . . . . . . . . . . . . . . . . 52
Function Key Help . . . . . . . . . . . . . . . 52
Chapter 21 Programming Commands 53
Project . . . . . . . . . . . . . . . . . . . . 53
Run Tool . . . . . . . . . . . . . . . . . . . . 53
Execute . . . . . . . . . . . . . . . . . . . . 56
Build all . . . . . . . . . . . . . . . . . . . 56
Symbols . . . . . . . . . . . . . . . . . . . . 56
Chapter 22 Programming Options 57
Set Tool Options . . . . . . . . . . . . . . . . 57
Set Autosave Timer . . . . . . . . . . . . . . . 57
Set Primary File . . . . . . . . . . . . . . . . 57
Make Current File Primary . . . . . . . . . . . 57
Next Error File . . . . . . . . . . . . . . . . 57
Next Error . . . . . . . . . . . . . . . . . . . 58
iv
Previous Error . . . . . . . . . . . . . . . . . 58
Chapter 23 Miscellaneous Commands 59
Activate Menus . . . . . . . . . . . . . . . . . 59
Abort . . . . . . . . . . . . . . . . . . . . . 59
Undo Last Deletion . . . . . . . . . . . . . . . 59
Restore Line . . . . . . . . . . . . . . . . . . 59
Chapter 24 Project 61
24.1 Project File Commands . . . . . . . . . . 63
# . . . . . . . . . . . . . . . . . . . . . . . 63
#EXECUTE . . . . . . . . . . . . . . . . . . . . 63
#SHELL . . . . . . . . . . . . . . . . . . . . . 63
#WINDOW . . . . . . . . . . . . . . . . . . . . 63
#VAR . . . . . . . . . . . . . . . . . . . . . . 63
#DEFINE . . . . . . . . . . . . . . . . . . . . 66
#UNDEFINE . . . . . . . . . . . . . . . . . . . 66
#IFDEF . . . . . . . . . . . . . . . . . . . . . 66
#IFNDEF . . . . . . . . . . . . . . . . . . . . 66
#ELSE . . . . . . . . . . . . . . . . . . . . . 66
#ELSEIF . . . . . . . . . . . . . . . . . . . . 66
#ENDIF . . . . . . . . . . . . . . . . . . . . . 66
#NOWARN . . . . . . . . . . . . . . . . . . . . 66
#WARN . . . . . . . . . . . . . . . . . . . . . 66
#BUILDON . . . . . . . . . . . . . . . . . . . . 66
#BUILDOFF . . . . . . . . . . . . . . . . . . . 67
24.2 Inference Rules . . . . . . . . . . . . . 67
Appendix A Creating Custom Error Filters 69
Appendix B Customizing The Help File 73
Appendix C Running Under DESQview 75
Appendix D Acknowledgments 77
Legal Stuff . . . . . . . . . . . . . . . 77
Index 79
v